以前在将网站发布到新的WEB服务器上时,网站无法打开并出现服务器错误:HTTP 错误 404.2 – Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。 后经过研究和处理,此问题是由于IIS服务上没有添加或者限制了ASP.NET对应的ISAPI服务器扩展造成的。
PS:有关ISAPI服务器扩展的知识,可以查看windows server官网资料:在 IIS 7 中配置 ISAPI 和 CGI 限制
所以解决方法就是添加ASP.NET网站对应版本的ISAPI扩展。比如博主的网站是ASP.NET MVC5,所以需要使用v4.0.30319版本的aspnet_isapi.dll扩展。其实错误页面也有提示具体的解决步骤:
下面将详细的对这些步骤进行说明:
1.打开 IIS 管理器并定位到服务器级别。打开服务器上的Internet 信息服务(IIS)管理器,选择IIS节点:
2.在“功能”视图中,双击“ISAPI 和 CGI 限制”以确认 Web 服务扩展被设置为“允许”。
这里要根据网站项目所使用的.NET Framework版本进行设置
3.如果该扩展不在列表中,请在“操作”窗格中单击“添加”。
4.在“添加 ISAPI 和 CGI 限制”对话框中,在“ISAPI”或“CGI 路径”框中键入 .dll 或 .exe 文件的路径,或者单击“浏览”导航到相应文件的位置。
5.在“描述”框中,键入该限制的简要说明。
6.(可选)选中“允许执行扩展路径”以使限制可以自动运行。如果不选中此选项,则限制状态将为“不允许”,这是默认状态。您可以在以后选中此选项并单击“操作”窗格中的“允许”来允许该限制。
7.单击“确定”。
注意: 请在确认您的 Web 服务器需要此 Web 服务扩展或 CGI 之后再将其添加到列表中。
- 确认扩展的位置正确。
- 确认扩展的 URL 在浏览器和 Web 服务器中均拼写正确。
- 创建跟踪规则以跟踪此 HTTP 状态代码的失败的请求。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98683.html