Asp.Net程序的高级功能,有很多都是基于IHttpHandler接口来实现的,在Winwods Server 2003 下,配置IIS6的 Web服务扩展非常简单。最近用Win7+IIS7.5的人越来越多,在这个环境下配置Asp.Net的Web服务扩展就有些麻烦。以下内容,就是在Win7和IIS7.5环境下配置过程。
首先,在IIS管理界面,选择“添加托管处理程序”,注意这和IIS6不同。
图1 添加托管处理程序
然后,配置网页页面的个性化后缀名,这里网页的后缀名不是aspx,而是zgl,在浏览器里面可以访问诸如default.zgl的页面。
图2 配置托管处理程序
下面就要修改配置文件,每次添加托管程序后,VS开发环境,都会自动修改Web.Config文件,而修改后的配置节,是错误的,需要手工纠正。这里需要注意,在Win2003和IIS6.X的环境下,需要增加<httpHandlers>配置节,而在Win7和IIS7.5环境下,可以不要配置该节。可以直接使用handles节。修改结构,见图3的最后一行代码。
图3修改配置文件
完成配置,运行结果,本例实现了Asp.net个性化的后缀名。
&n ......
ASP.NET下载——word,txt,图片方法
本文主要介绍ASP.NET下载诸如word,txt,图片等的方法。
try
{
FullFileName = Server.MapPath(FileName); //FileName--要下载的文件名
FileInfo DownloadFile= new FileInfo(FullFileName);
if(DownloadFile.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer=false;
Response.ContentType="application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment;filename="
+HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.ASCII));
Response.AppendHeader("Content-Length",DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
else{
//文件不存在
}
}
catch{
//文件不存在
......
//default.aspx.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Runtime.InteropServices;
using System.Configuration;
using System.Web.UI.WebControls;
using System.Web.Services.Description;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Button4.Attributes.Add("onclick", "window.open('Register.aspx')");//通过button4打开链接
string strConnection = ConfigurationManager.AppSettings["Str.Properties.Settings.masterConnectionString"].ToString();
SqlConnection objConnection = new SqlConnection(strConnection);
objConnection.Open();
SqlCommand cmd = new SqlCommand("select * from judging where name='" + TextBox1.Text.Trim() + "'", objConnection);
s ......
关于ClientID的使用我遇到一下问题:
获取由 ASP.NET 生成的服务器控件标识符。
问题一: 用户控件的页面JavaScript中需要使用Asp.net的控件ID,出现不一致。
问题二:母版页的子页面JavaScript中需要使用Asp.net的控件ID,出现不一致。
解决办法:
document.getElementById("<%=TextBox1.ClientID%>").value="1234567";
此代码可以在客户端完成对服务器端控件的访问,由于ASP.NET会为把服务器端控件在客户端的呈现生成不同的名称,所以此功能比较有用获取。
注意采用此解决办法的前提: Asp.net的控件为静态控件(通过工具添加的控件)
问题三: 动态创建控件的ClientID的获得存在:不能在页面中采用"<%=TextBox1.ClientID%>".方法获得(不能的方法,因为控件是动态创建的);也不能在页面脚本中采用TextBox1.ClientID的方法获得(获得的ID是不正确的)。
解决办法:
(CitySpecProductScheduledControl.ascx.cs代码片段 )
TextBox text = new TextBox();
text.MaxLength = ......
在你的Page_Load中添加这样的代码:
Page.Response.Clear();
bool success = ResponseFile(Page.Request, Page.Response, "目的文件名称", @"源文件路径", 1024000);
if (!success)
Response.Write("下载文件出错!");
Page.Response.End();
文件下载函数代码为:
public static bool ResponseFile(HttpRequest _Request,HttpResponse _Response,string _fileName,string _fullPath, long _speed)
{
try
{
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(myFile);
&nbs ......
在ASP.NET的SOUCE中,不会存在BGSOUND这个标签,但是,如果我想插入一段背景音乐怎么办?
我这里有两种解决方法:
1、写入一个网页播放器,但是这样,本人认为很复杂,而且,我也不会
2、用IFRAME嵌套一个HTML网页,将IFRAME的的WIDTH和HEIGHT都设置成0PX,即可。 ......