如何查看 IIS 版本
如果试图在 inetmgr 中查看,有些版本可在帮助文件中看到,但是大多数都是显示的 Windows 版本,而不是 IIS 版本。
最好的方便,是在注册表中查看 IIS 版本。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp
右边:SetupString、VersionString。
各 Windows 操作系统对应的 IIS 版本
Windows Server 2008 R2 | IIS 7.5 |
Windows Server 2012 | IIS 8.0 |
Windows Server 2012 R2 | IIS 8.5 |
Windows Server 2016 | IIS 10.0 |
Windows Server 2019 | IIS 10.0 |
注意:没有 IIS 9.0,Windows Server 2016、2019 对应的都是 IIS 10.0。
IIS 各版本中的权限
IIS 6.0 用户(组):IUSR_MachineName、IIS_WPG 组。
IIS 7.0 用更高版本中 用户(组):IUSR、IIS_IUSRS 组。
IIS 7.5 用户(组):添加了名为“应用程序池标识”的新安全功能。 此功能允许在唯一帐户下运行应用程序池,而无需创建和管理域或本地帐户。
在 IIS 7.5 中,我们在任务管理器中,会看到很多 w3wp.exe(一个应用程序池一个),真正实现了权限、资源的隔离,这是比较棒的转折。IIS 8.0 中又没有这个了。
IIS 8.0 的 NTFS 权限这样设置
“网站”使用“应用程序池用户”,“应用程序池”使用 “ApplicationPoolIdentity”,则:
网站文件夹赋 IIS APPPOOL\应用程序名。
网站文件夹赋 IUSR,静态文件也是这样。
报错情况:
缺 IIS APPPOOL\应用程序名,或都缺,则“HTTP 错误 500.19 - Internal Server Error(错误代码 0x80070005)”。
缺 IUSR,则“HTTP 错误 401.3 - Unauthorized”。
“网站”使用“应用程序池用户”,“应用程序池”使用“计算机用户”,则:
同上,不过此时,计算机用户和 IIS APPPOOL\应用程序名,可以选一个来使用。
“网站”使用“计算机用户”,“应用程序池”使用“计算机用户”,则:
网站文件夹必须是计算机用户。
如果是 ASP.NET 文件(非图片这类静态文件),还需要在类似“C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files”这个目录上,赋计算机用户的权限。
“网站”使用“计算机用户”,“应用程序池”使用“ApplicationPoolIdentity”,则:
网站文件夹必须是计算机用户。
如果是 ASP.NET 文件(非图片这类静态文件),还需要在类似“C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files”这个目录上,赋计算机用户的写权限。
如果是 ASP.NET 文件(非图片这类静态文件),网站文件夹还要再赋 IIS APPPOOL\应用程序名。
相关阅读