You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Windows Server 2016中IIS版本及运行能力的技术疑问

Hey,我来帮你拆解这些关于IIS的疑问——这些都是服务器管理员刚接触IIS 10时很容易搞混的点,咱们一个个说清楚:

关于Windows Server 2016上IIS的常见疑问解答

1. IIS 10.0在System32文件夹,是不是32位程序,无法运行64位Web代码?

完全不是哦!Windows的System32文件夹其实是专门存放64位系统文件的(这个命名确实有点反直觉),而32位系统文件反而在SysWOW64文件夹里。所以IIS 10.0的核心文件放在System32,恰恰说明它本身是64位程序,完全支持运行64位Web代码。

不过要注意:IIS有个「启用32位应用程序」的设置,如果开启这个选项,对应应用池会以32位兼容模式运行,这时候会加载32位相关组件,但IIS的核心服务依然是64位的。

2. IIS是否同时存在32位和64位版本?如何判断当前使用的版本?

IIS的架构是和系统绑定的:

  • 如果你安装的是64位Windows Server 2016,那么IIS就是64位版本;
  • 只有32位Windows系统上才会安装32位IIS,但现在服务器基本都是64位系统,32位IIS已经几乎没人用了。

判断当前应用池的运行架构(32/64位)很简单:

  • 打开IIS管理器,找到目标应用池,右键选择「高级设置」;
  • 查看「启用32位应用程序」选项:False代表64位模式,True代表32位兼容模式。

也可以用命令行快速查看:打开命令提示符,运行

%windir%\system32\inetsrv\appcmd list apppool /text:enable32BitAppOnWin64

返回True就是32位模式,False则是64位模式。

3. 为啥部分扩展(比如URL Rewrite)有两个版本?

这类扩展提供32位和64位版本,是为了适配不同的应用池运行模式:

  • 如果你的应用池是64位模式,就安装64位版本的扩展;
  • 如果因为兼容老应用(比如部分ASP.NET 1.1程序)开启了32位应用模式,就需要安装32位版本的扩展。

IIS扩展必须和应用池的运行架构匹配,否则会出现加载失败或兼容性问题。

4. IIS 6也在同一文件夹里?

你看到的应该是IIS 6的兼容性组件(比如iis6wmi.dll这类文件)。Windows Server 2016中的IIS 10.0保留了这些组件,是为了兼容老的管理脚本、工具或者依赖IIS 6配置逻辑的旧应用——它们不是完整的IIS 6服务,只是用于向下兼容的模块,核心服务依然是IIS 10.0。

内容的提问来源于stack exchange,提问作者userSteve

火山引擎 最新活动