ASP.NET页面揭秘(一)
其实对这方面一直掌握的不够熟练,属于半桶水那种类型—一知半解,所以这次重新这阅读了《asp.net 2.0技术内幕》对这块知识又有了新的认识。
在基于IIS的Web服务器上可以访问的所有资源按文件扩展名进行分组。然后把任何一个输入的请求分配给特定的运行时模块处理。ISAPI(Internet Server Application Programming Interface)扩展在 IIS的上下文中处理Web的资源的模块。它就是一个普通的旧式Win32动态链接库(DLL),提供了大量有预定义名称和原型的API函数,为开发人员提供了更加强大的对于IIS功能的扩展。IIS和 ISAPI扩展作为一种私有的通信协议使用这些DLL项。对一个资源的请求到达时,IIS首先验证资源类型。图像,文本文件,HTML页面和无脚本ASP页面等静态资源,由IIS直接解析。需要服务器端进行加工的资源被转到已注册的模块。例:.aspx文件就会分配给一个名为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll的ISAPI扩展处理。
资源映射存储在IIS元库中。ASP.NET在安装时对IIS元库进行修改,确保aspnet_isappi.dll能处理某些典型的ASP.NET资源。(.asax,.ascx,ashx,asmx,aspx,axd等等)
IIS5.0进程模型
跟据该模型,当一个http资源请求来的时候,aspnet_isapi.dll 不能处理.aspx文件,而是充当调度程序。它收集所有有关激活的URL和基础资源信息,然后把请求传给另一个进程: 名为aspnet_wp.exe的asp.net工作进程。ISAPI扩展和该工作进程之间的通道通过命名管道进行。工作进程的一个副本始终在运行,并托管所有的活动的web应用程序。每个web应用程序用自己虚拟目录进行标识,并且属于一个不同的应用区域(通常称为AppDomain)。每当客户第一次处理一个虚拟目录时,在ASP.NET工作进程内创建一个新的AppDomain.创建新的AppDomain后,ASP.NET运行库加载所有必须的程序集,并把控制传递给托管的HTTP 管道以实际服务请求。如果客户从一个已经运行的Web应用程序请求一个页,则ASP.NET运行库只把该请求转发到与该虚拟目录关联的现有AppDomain。如果该AppDomain中没有加载处理该页所有的程序集,则动态地创建它,否则在第一次调用时已经创建,则只使用它。
表示请求页
每个引用.aspx资源的进入请求都会被映射到一个派生 Page类,并且通过它提供服务。ASP.NET HTTP运行时环境首先确定用于服务该请求的类的名称。这里有个特殊的命名约定将该页的URL与该类的名称相关联。例 default.aspx对应类AS
相关文档:
一、返回多个数据集
检查你的访问数据库的代码,看是否存在着要返回多次的请求。每次往返降低了你的应用程序的每秒能够响应请求的次数。通过在单个数据库请求中返回多个结果
集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作 ......
对于asp.net程序,我们应该尽可能的提供一个便捷的用户接口,减少页面回传就是其中之一。
本文演示一次上传多个文件的方法,在客户端可以随意控制上传文件的个数,但是注意总文件大小不能过大,否则会有异常抛出。至于解决大文件上传的方法已经超出本文的讨论范围。
<注:大附件办法>
<
<configuration> ......
很早前就想做文件的解压、压缩、下载
了,不过一直没时间,现在项目做完了,今天弄了下。不过解压,压缩的方法还是看的网上的,嘻嘻~~不过我把它们综合了一下哦。呵呵~~
1.先要从网上下载一个icsharpcode.sharpziplib.dll
2.建立类AttachmentUnZip,内容如下:
using System;
using System.Data;
using System.Config ......
ASP.NET中前台javascript与后台代码调用
2010-03-31 10:01
.net中C#代码与javaScript函数的相互调用问题。
问:
1.如何在JavaScript访问C#函数?
2.如何在JavaScript访问C#变量?
3.如何在C#中访问JavaScript的已有变量?
4.如何在C#中访问JavaScript函数?
问题1答案如下:
javaScript函 ......