IIS 与 IIS Express

一、IIS不同版本的工作方式

  1. IIS 5.X 运行在进程InetInfo.exe 中,该进程寄宿这一个名为World Wide Web Publishing Service(W3SVC)的Windows 服务,W3SVC 主要负责HTTP请求的监听、激活和管理工作进程、加载配置等,当检测到某个HTTP请求时,如果是静态资源,IIS直接将文件内容响应到客户端,如果是动态资源,则IIS通过资源扩展名从IIS脚本映射中找到对应的ISAPI 动态链接库。ISAPI支持ISAPI扩展和ISAPI(ISAPI Filter)筛选,后者主要用于请求过滤和验证等。IIS 5.X 的所有Web应用都运行在同一个进程 aspnet_wp.exe 中的不同引用程序域中。
  2. 鉴于IIS5.X ISAPI动态链接库加载到InetInfo.exe进程中与工作进程是跨进程通讯方式,IIS6直接将ISAPI 动态链接库加载到工作进程中;鉴于IIS 5.X 每个Web请求运行在单个应用程序域中,隔离性不足,很多时候需要每个Web请求运行在不同进程中,IIS 6 引入了应用程序池机制,每一个应用程序池对应一个独立的工作进程(w3wp.exe)。IIS6 在Http监听方面引入了HTTP.SYS 驱动程序,运行在Windows的内核模式下。
  3. IIS7:IIS7在请求的监听和分发机制上引入了Windows进程激活服务(WAS),分流了IIS6 W3SVC承载的部分功能,包括配置管理和进程管理。WAS的引入为IIS7提供了对非HTTP协议的支持,它通过监听适配器接口抽象出不用协议的监听器,进而提供了对TCP、命名管道和MSMQ传输协议的监听支持。

二、使用IIS Express
1. 使用 Visual Studio 命令行查看 IIS Express 的网站列表
cd “C:\Program Files\IIS Express”
appcmd list site
2. 让 IIS Express 支持外部连接
修改项目隐藏文件目录.vs 下面 config 文件夹中的“applicationhost.config” 文件,找到<site> 将bindings\binding[@bindingInformation]端口号后方的localhost改成“*”
测试完成后可以使用 netsh http delete urlacl url=http://*:{端口号}/ 关闭外部连接

猜你喜欢

转载自blog.csdn.net/wuxinwudai/article/details/80673413
IIS