我在 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top