如何修复 Win Server 2k8 和 IIS7 上的 404.17 错误
题
我在 Win Server 2k8 下的 IIS 7 上设置了一个新的 .net 2.0 网站,当浏览到页面时,它给我一个 404.17 错误,声称该文件(在本例中为 default.aspx)似乎是一个脚本,但正在被由静态文件处理程序处理。听起来 ASP.Net 的模块映射混乱了,但它们在配置中看起来很好。有人建议纠正这个错误吗?
解决方案
有一次我在 IIS6 上遇到了这个问题,当时 ASP.NET ISAPI 的东西不知何故坏了。
跑步
%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
重新创建设置就解决了。
其他提示
这个解决方案对我有用......(我有 aspnet_regiis.exe -i 造成了一些损害)
http://forums.iis.net/t/1157725.aspx
1. Locate your App Pool and Right Click 2. Select Basic Settings 3. Select your current .Net Framework Version 4.Restart the App Pool
对我来说,它通过执行以下操作起作用
安装 ASP.NET
cd %windir%\Microsoft.NET\Framework64/v4.0.30319
aspnet_regiis.exe -i
- 接下来转到 IIS 管理器并单击服务器(根)节点。
- 在功能视图的 IIS 部分中,打开“ISAPI 和 CGI 限制”
- 右键单击 ASP.NET 4 限制列,然后右键单击允许
希望对你有帮助..
对我来说,我的问题是由于我的项目的 web.config 文件中的设置(以及解决方案,一旦我理解了问题)而出现的。
在我的 web.config 文件中,我们有这两行 system.webServer > 处理程序 区域:
<remove name="WebServiceHandlerFactory-ISAPI-2.0" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
请注意,替代处理程序具有属性“preCondition =“integratedMode””。所以,我必须更改我的 AppPool 才能使用 融合的 代替 经典的 为了我的 管道模式 设置(这与上面的解决方案告诉我要做的相反)。
始终首先尝试在处理程序映射中“恢复到父级”。
当尝试在 IIS 7.5 中运行 ASP.NET 4.0 时,我收到 404.17。我尝试了上述所有方法,最终手动设置了正确的处理程序映射,并且错误消失了。
然后,在另一个出现相同错误的网站上,我尝试在处理程序映射中“恢复到父级”,它添加了 6 个 *.aspx 映射,一切都运行良好。
显然,您必须正确配置父级(通过安装或其他方式),但这绝对是每个人都应该采取的第一步,因为它非常简单。
对我来说,解决方案是从虚拟应用程序下的处理程序映射部分单击“从继承恢复”。
到目前为止,这些解决方案都不适合我。
我发现了一些其他可能的解决方案(对我来说不起作用):
解决这个问题只有一种方法......
首先安装Windows7,然后安装具有所有功能的IIS 7
然后安装Visual Studio 2008 / 2010
我在 Visual Studio 2008 和 2010 上工作,但以前从未见过这个错误。
我也可以在我朋友的电脑上尝试一下。我也解决了这个错误。
对我来说,通过将 32 位应用程序设置为 true 解决了这个问题。
以上都不适合我。我们的服务器是 64 位的,因此将应用程序设置为允许 32 位应用程序对我们有用:
- 转到 Web 服务器\应用程序池
- 右键单击您的网站使用的应用程序池。
- 单击高级设置...
- 将“启用 32 位应用程序”设置为 True。
我认为这是因为 Web 应用程序仅针对 32 位进行编译。
%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
在获得“试图使用不正确格式加载程序”后为我工作的... 32框架
也许我可以再帮你节省一秒谷歌搜索时间
为我, 这 工作了。安装机器配置部分、处理程序、程序集、模块、协议和许多其他东西以使其正常工作。
对我来说,这是服务器功能中未检查 HTTP 激活。
我们需要在 IIS 开发功能下的 Windows 功能菜单中安装 ASP.NET 3.5 和 4.5、ISAPI 扩展、ISAPI 筛选器和服务器端包含。
或者,使用命令行 DISM:
Dism /online /enable-feature /featurename:NetFx3 /All /Source:WindowsInstallers\Win8\sxs /LimitAccess
Dism /online /enable-feature /featurename:NetFx4 /All /Source:WindowsInstallers\Win8\sxs /LimitAccess
Dism /online /enable-feature /featurename:IIS-ISAPIExtensions /All /Source:WindowsInstallers\Win8\sxs /LimitAccess
Dism /online /enable-feature /featurename:IIS-ISAPIFilter /All /Source:WindowsInstallers\Win8\sxs /LimitAccess
Dism /online /enable-feature /featurename:IIS-ServerSideIncludes /All /Source:WindowsInstallers\Win8\sxs /LimitAccess
http 在 WCF 服务下激活打开/关闭 Windows 功能解决了该问题。
就我而言,上述答案都没有解决问题,原因是 未安装 CGI 模块.
为了解决这个问题,我遵循了这些说明。
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/cgi