解决64位Windows Server 2008部署IIS时404.17错误

需积分: 3 3 下载量 107 浏览量 更新于2024-09-12 收藏 570KB DOCX 举报
"在64位Windows Server 2008上部署IIS时,可能会遇到404.17错误,该错误通常是因为IIS无法正确处理动态内容。解决这个问题需要一系列步骤,包括调整应用程序池设置,重新注册.NET Framework,配置ISAPI筛选器,允许32位程序执行,以及设置文件系统权限。此外,还需要确保Web服务协议配置正确。" 在64位Windows Server 2008操作系统中,部署基于C#和VS.NET开发的Webservice服务器时,可能遇到的问题是404.17错误,即IIS无法识别并处理动态内容,认为它们是脚本。要解决此问题,首先应检查IIS管理器中的应用程序池设置。进入应用程序池,选择对应的池,然后在高级设置中将"启动32位应用程序"选项设置为"true"。这样做是为了确保IIS可以处理32位应用程序,因为有些组件可能依赖于32位环境。 如果更改设置后问题仍然存在,可能与.NET Framework的安装或注册有关。需要确认.NET Framework 4.0是否正确安装,并通过命令行工具aspnet_regiis进行重新注册。在命令提示符下,定位到.NET Framework的安装目录(例如C:WindowsMicrosoft.NETFrameworkV4.0.30319),然后运行“aspnet_regiis –i”命令。 接下来,检查IIS管理器中默认网站的功能设置,特别是ISAPI筛选器。确保筛选器配置正确,以便IIS能够识别和执行所需的脚本和扩展。同时,检查"ISAPI和CGI限制",确保32位应用程序的执行被允许。 在某些情况下,问题可能出在应用程序池的配置上。需要将应用程序池设置为使用.NET Framework 4.0,这可以通过在应用程序的高级设置中更改"应用程序池"来实现。 此外,权限问题也可能导致"拒绝访问"的错误。确保IIS的默认用户账户"IIS_IUSR"拥有足够的权限,例如对"Temp"文件夹的读写权限。 最后,为了使Web服务正常工作,需要在Web.Config文件中添加适当的Web服务协议配置,例如启用HttpGet和HttpPost协议: ```xml <webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices> ``` 完成以上步骤后,重启IIS服务,一般可以解决404.17错误,使得网站能够正常访问和运行。这个过程涉及到IIS的多个层面,包括应用程序池、.NET Framework、ISAPI筛选器、权限设置以及Web服务配置,每个环节都至关重要。