以前在将网站发布到新的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 之后再将其添加到列表中。
作者:十有三
出处:https://shiyousan.com/post/635689409129870032
版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。