比较IIS5、IIS6、IIS7的ASP.net请求处理过程

比较IIS5、IIS6、IIS7的ASP.net请求处理过程,第1张

;       SP NET是一个非常强大的构建Web应用的平台 它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用         绝大多数的人只熟悉高层的框架如 WebForms 和 WebServices 这些都在ASP NET层次结构在最高层

这篇文章的资料收集整理自各种微软公开的文档 通过比较 IIS IIS IIS 这三代 IIS 对请求的处理过程 让我们熟悉 ASP NET的底层机制 并对请求(request)是怎么从Web服务器传送到ASP NET运行时有所了解 通过对底层机制的了解 可以让我们对 有更深的理解

IIS 的 请求处理过程

IIS 的请求处理过程

对图的解释

IIS x 一个显著的特征就是 Web Server 和真正的 ASP NET Application 的分离 作为 Web Server 的IIS运行在一个名为 InetInfo exe 的进程上 InetInfo exe 是一个Native Executive 并不是一个托管的程序 而我们真正的 ASP NET Application 则是运行在一个叫做 aspnet_wp 的 Worker Process 上面 在该进程初始化的时候会加载CLR 所以这是一个托管的环境

ISAPI   指能够处理各种后缀名的应用程序 ISAPI 是下面单词的简写 Internet Server Application Programe Interface 互联网服务器应用程序接口

IIS 模式的特点

首先 同一台主机上在同一时间只能运行一个 aspnet_wp 进程 每个基于虚拟目录的 ASP NET Application 对应一个 Application Domain 也就是说每个 Application 都运行在同一个 Worker Process 中 Application之间的隔离是基于 Application Domain 的 而不是基于Process的 其次 ASP NET  ISAPI 不但负责创建 aspnet_wp Worker Process 而且负责监控该进程 如果检测到 aspnet_wp 的 Performance 降低到某个设定的下限 ASP NET  ISAPI 会负责结束掉该进程 当 aspnet_wp 结束掉之后 后续的 Request 会导致ASP NET ISAPI 重新创建新的 aspnet_wp Worker Process

最后 由于 IIS 和 Application 运行在他们各自的进程中 他们之间的通信必须采用特定的通信机制 本质上 IIS 所在的 InetInfo 进程和 Worker Process 之间的通信是同一台机器不同进程的通信(local interprocess munications) 处于Performance的考虑 他们之间采用基于Named pipe的通信机制 ASP NET ISAPI和Worker Process之间的通信通过他们之间的一组Pipe实现 同样处于Performance的原因 ASP NET ISAPI 通过异步的方式将Request 传到Worker Process 并获得 Response 但是 Worker Process 则是通过同步的方式向 ASP NET ISAPI 获得一些基于 Server 的变量

IIS 的 请求处理过程

IIS 的 请求处理过程

对图的解释

IIS x 是通过 InetInfo exe 监听 Request 并把Request分发到Work Process 换句话说 在IIS x中对Request的监听和分发是在User Mode中进行 在IIS 中 这种工作被移植到kernel Mode中进行 所有的这一切都是通过一个新的组件 sys 来负责注 为了避免用户应用程序访问或者修改关键的 *** 作系统数据 windows提供了两种处理器访问模式 用户模式(User Mode)和内核模式(Kernel Mode) 一般地 用户程序运行在User mode下 而 *** 作系统代码运行在Kernel Mode下 Kernel Mode的代码允许访问所有系统内存和所有CPU指令在User Mode下 sys接收到一个基于 aspx 的 request 然后它会根据IIS中的 Metabase 查看该基于该 Request 的 Application 属于哪个Application Pool 如果该Application Pool不存在 则创建之 否则直接将 request 发到对应Application Pool 的 Queue中每个 Application Pool 对应着一个Worker Process w wp exe 毫无疑问他是运行在User Mode下的 在IIS Metabase 中维护着 Application Pool 和worker process的Mapping WAS(Web Administrative service)根据这样一个mapping 将存在于某个Application Pool Queue的request 传递到对应的worker process(如果没有 就创建这样一个进程) 在 worker process 初始化的时候 加载ASP NET ISAPI ASP NET ISAPI 进而加载CLR 最后的流程就和IIS x一样了 通过AppManagerAppDomainFactory 的 Create方法为 Application 创建一个Application Domain 通过 ISAPIRuntime 的 ProcessRequest处理Request 进而将流程进入到ASP NET >

双击IIS图标,运行IIS服务器;

IIS打开后,选中网站,然后右键,在d出的菜单中,选择新建,然后选择网站;如下图所hi:

在d出的窗口中,直接点击下一步

输入网站描述,并点击下一步;

默认,并点击下一步;

选择网站存放路径;

写入此项不选,其他全选,并点击下一步;

点击完成

选中刚才新建的网站,并右键,选择属性选项;

然后再d出的选项卡里点击:主目录,然后再主目录下的内容里,不选中写入项,然后点击应用;

然后点击文档选项卡;

然后点击添加,

输入默认内容页,并确定;

选中添加好的内容页(indexphp或者indexhtml,indexasp,indexhtm),点击上移到第一位;

上移到顶部后,点击应用,最后点击确定;

最后选中该网站,点击启动服务按钮。

部署网站成功,然后大家就可以用刚才的域名(网址)访问该网站了。

1.安装IIS

架设第一步就是安装IIS,它是本地网站运行的基础。WindowsXP默认没有安装IIS,我们通过以下步骤完成IIS的安装。

依次点击“控制面板→添加/删除程序→添加/删除Windows组件”,打开Windows组件向导窗口,选择“Internet信息服务(IIS)”,在光驱中插入WindowsXP安装光盘,然后单击“下一步”按钮,按照提示即可完成IIS组件的安装工作。

2.设置IIS

把网页文件夹(其中的所有文件)拷贝到以下目录:C:Inetpub信息服务→本地计算机→网站→默认网站”,右击“默认网站”并选择“属性”,打开“默认网站属性”窗口。所有IIS设置都是在这个窗口中进行的。

(1)设置主目录

选择“主目录”标签,定位论坛的位置。由于前面我们已经将论坛所有的文件拷贝到IIS默认的网站文件夹(pub>

接下来是设置论坛的对外权限。在此建议选择“读取”和“目录浏览”两项。然后再设置一下“应用程序”,在“执行权限”下拉列表中选择“脚本和可执行文件”并点击“应用”按钮。

(2)设置目录安全性

选择“目录安全性”标签,并单击“匿名访问和”框中的“编辑”按钮,打开“身份验证方法”窗口。

一般情况下我们把论坛的登录方式设置为“匿名访问”。接着在“用户访问需经过身份验证”框中选择“集成Windows身份验证”选项,这样网友可以直接访问。如果取消“匿名访问”选项,网友们访问论坛时就必须要有分配的登录名和密码才能正常访问。最后单击“确定”,返回网站属性设置窗口。

提示:开启IIS禁用的匿名账户,方法是:打开“控制面板”中的“计算机管理”窗口,在左侧窗口中依次选择“计算机管理→系统工具→本地用户和组→用户”,然后在右侧窗口中双击“IUSER_”代表系统当前用户名,并在d出的窗口中取消选择“账户已停用”选项,建议同时选择“密码永不过期”选项,防止超过指定的时间而导致默认账户被停用,最后单击“确定”即可。

3.设置网站

如果你的IP地址是固定IP,则可以将这个IP地址设置为别人访问论坛的IP地址。单击“网站”标签,然后在“IP地址”框中输入这个固定的IP地址即可。另外,如果已经申请了域名,就可以通过设置域名解析服务(DNS)来将域名和IP地址进行绑定,这样网友就可以直接使用域名来访问论坛了。

选择“文档”标签,在此标签窗口中单击“添加”,并在d出的窗口中输入“Indexasp”,这样论坛的索引页(Indexasp)将成为默认的论坛首页,最后单击“应用”按钮使设置生效即可。

提示:首页是一个网站与用户“见面”的第一个页面,所以网站的默认首页文件取名是有讲究的,一般是下面几个文件名中的一个:index.html、index.htm、index.asp、default.html、default.htm、default.asp。

在iis下运行worldclinet的登陆主域,可以通过如下步骤:

1、打开IIS

2、创建新的应用程序池

右健点击应用程序池-新建-应用程序池,在d出的窗口中输入新的应用地址池的名称,例如webmail,点击确定

3、在应用地址池中多出了1个新的应用地址池webmail。

右健点击这个应用地址池,选择属性,打开属性窗口

4、在属性的“性能”标签中,取消“在空闲此段时间后关闭工作进程”和“核心请求队列限制为(请求次数)”

5、在“标识”标签选在预定义账户 为 “本地系统”

6、点击确定,完成对应用地址池的配置。

7、右健点击网站,选择新建-网站,出现网站创建向导,点击“下一步”

8、输入网站的名称如:WorldClient,点击下一步

9、输入其中的一个域名的邮件头mailacom,点击下一步

10、输入主目录路径,一般是MD安装目录下的WorldClient\HTML。点击下一步

11、选择权限为读取、运行脚本和执行,点击下一步,完成配置

12、右健点击刚才新建的网站WorldClient,选择属性,选择主目录页面,在其中的应用地址池选择刚才新建的webmail

13、选择属性的文档页面,移除里面所有的文档,添加WorldClientdll文档

14、点击确定,完成对属性的配置

15、双击web扩展服务,开启所有未知ISAPI扩展

16、给MDaemon的安装目录赋予权限。

右键点击MDaemon的安装目录选择属性-安全。 选择:添加-高级-立即查找,在其中找到IUSR(Interner来宾帐户)

点击确定,然后给IUSR(Internet来宾帐户)完全控制权限。

17、将MD设置在IIS下运行。

点击菜单栏中的设置,在下拉菜单中,选择-web及SyncML服务,打开“Web服务器”页面,选择WorldClient使用外部web服务器运行

(IIS,Apache等)。

18、现在只要在浏览器中输入mailacom就可以访问登陆页面了。

MDaemon升级注意事项:

在MDaemon升级的时候,需要做的就是打开IIS,右键点击刚才创建的应用程序池webmail,选择“停止”。然后停止MDaemon,进行升级,升

级完成之后,打开IIS,右键点击刚才的应用地址池,选择“启用”,就可以了。

当停止应用地址池的时候,用户在打开网页的时候可能显示的是,“Service Unavailable”。

按照以上步骤来 *** 作的话可以尽量减少系统重启的情况。

以上就是关于比较IIS5、IIS6、IIS7的ASP.net请求处理过程全部的内容,包括:比较IIS5、IIS6、IIS7的ASP.net请求处理过程、怎样设置iis问题出在哪里、怎么在iis上部署网站等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9292738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存