IIS不同版本的工作方式
- 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 中的不同引用程序域中。
- 鉴于IIS5.X ISAPI动态链接库加载到InetInfo.exe进程中与工作进程是跨进程通讯方式,IIS6直接将ISAPI 动态链接库加载到工作进程中;鉴于IIS 5.X 每个Web请求运行在单个应用程序域中,隔离性不足,很多时候需要每个Web请求运行在不同进程中,IIS 6 引入了应用程序池机制,每一个应用程序池对应一个独立的工作进程(w3wp.exe)。IIS6 在Http监听方面引入了HTTP.SYS 驱动程序,运行在Windows的内核模式下。
- IIS7:IIS7在请求的监听和分发机制上引入了Windows进程激活服务(WAS),分流了IIS6 W3SVC承载的部分功能,包括配置管理和进程管理。WAS的引入为IIS7提供了对非HTTP协议的支持,它通过监听适配器接口抽象出不用协议的监听器,进而提供了对TCP、命名管道和MSMQ传输协议的监听支持。
使用IIS Express
- 使用 Visual Studio 命令行查看 IIS Express 的网站列表
cd “C:\Program Files\IIS Express”
appcmd list site - 让 IIS Express 支持外部连接
修改项目隐藏文件目录.vs 下面 config 文件夹中的“applicationhost.config” 文件,找到<site> 将bindings\binding[@bindingInformation]端口号后方的localhost改成“”
测试完成后可以使用 netsh http delete urlacl url=http://:{端口号}/ 关闭外部连接
IIS 配置相关建议
参考:http://cnblogs.com/zhaokunbokeyuan256/p/10943333.html
IIS 服务器端变量
变量 | 说明 |
---|---|
DOCUMENT_ROOT | Web 站点的文档根文件夹的绝对路径 |
HTTP_REFERER | 引用的 URL 地址 |
HTTP_USER_AGENT | 用户浏览器的信息 |
配置常用MIME
<system.webServer>
<staticContent>
<remove fileExtension=".woff"/>
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<remove fileExtension=".woff2"/>
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" />
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
</system.webServer>
.svg image/svg+xml
.woff application/x-font-woff
.woff2 application/x-font-woff
.eot application/vnd.ms-fontobject
.otf application/octet-stream
.ttf application/octet-stream
.NET5 部署
注意要上传
IIS 部署 vue
安装 IIS url_rewrite 模块
注意添加 web.config 文件,添加路由规则
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="History" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
<caching>
<profiles>
<add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
</system.webServer>
</configuration>