【发布时间】:2010-09-10 08:50:54
【问题描述】:
我在 Win Server 2k8 下的 IIS 7 上设置了一个新的 .net 2.0 网站,当浏览到一个页面时,它给了我一个 404.17 错误,声称该文件(在这种情况下为 default.aspx)似乎是一个脚本但由静态文件处理程序处理。听起来 ASP.Net 的模块映射搞砸了,但它们在配置中看起来不错。有没有人有纠正这个错误的建议?
【问题讨论】:
我在 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 造成了一些损害)
1.找到您的应用程序池并右键单击 2.选择基本设置 3. 选择您当前的 .Net Framework 版本 4.重启应用池【讨论】:
对我来说,它通过以下方式起作用
安装 ASP.NET
cd %windir%\Microsoft.NET\Framework64/v4.0.30319
aspnet_regiis.exe -i
希望它对你有用..
【讨论】:
对我来说,我的问题是因为我项目的 web.config 文件中的设置(以及解决方案,一旦我理解了问题)。
在我的 web.config 文件中,我们在 system.webServer > handlers 区域中有这两行:
<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 更改为使用 Integrated 而不是 Classic 作为我的 pipeline mode 设置(这与上述解决方案相反告诉我做)。
【讨论】:
总是先在 Handler Mappings 中尝试“Revert to Parent”。
尝试在 IIS 7.5 中运行 ASP.NET 4.0 时,我得到了 404.17。我尝试了以上所有方法,最终手动设置了正确的处理程序映射,错误消失了。
然后,在另一个出现相同错误的网站上,我在 Handler Mappings 中尝试了“Revert to Parent”,它添加了 6 个 *.aspx 映射,一切正常。
显然,您必须正确配置父级(从安装或其他方式),但这绝对是每个人都应该采取的第一步,因为它非常简单。
【讨论】:
对我来说,解决方案是从虚拟应用程序下的处理程序映射部分单击“从继承中恢复”。
【讨论】:
到目前为止,这些解决方案都不适合我。
我找到了一些其他可能的解决方案(对我不起作用):
【讨论】:
解决这个问题只有一种方法...
首次安装Windows7 然后安装具有所有功能的 IIS 7
然后安装 Visual Studio 2008 / 2010
我在 Visual Studio 2008 和 2010 上工作,但我以前从未见过此错误。
我也可以在我朋友的电脑上试用。我也解决了这个错误。
【讨论】:
对我来说,这可以通过将 32 位应用程序设置为 true 来解决。
【讨论】:
以上都不适合我。 我们的服务器是 64 位的,因此将应用程序设置为允许 32 位应用程序为我们工作:
我认为这是因为 Web 应用程序仅编译为 32 位。
【讨论】:
%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
获得后为我工作 “试图加载格式不正确的程序......” 与32框架
也许你再用谷歌搜索一下就省事了
【讨论】:
对我来说,this 有效。安装机器配置部分、处理程序、程序集、模块、协议和许多其他东西以正常工作。
【讨论】:
对我来说,服务器功能中没有检查 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
【讨论】:
WCF 服务下的 http 激活开启/关闭 windows 功能解决了该问题。
【讨论】:
在我的情况下,以上答案都没有解决问题,原因是没有安装 CGI 模块。
为了解决这个问题,我遵循了这些说明。
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/cgi
【讨论】: