【问题标题】:How do I fix 404.17 error on Win Server 2k8 and IIS7如何修复 Win Server 2k8 和 IIS7 上的 404.17 错误
【发布时间】:2010-09-10 08:50:54
【问题描述】:

我在 Win Server 2k8 下的 IIS 7 上设置了一个新的 .net 2.0 网站,当浏览到一个页面时,它给了我一个 404.17 错误,声称该文件(在这种情况下为 default.aspx)似乎是一个脚本但由静态文件处理程序处理。听起来 ASP.Net 的模块映射搞砸了,但它们在配置中看起来不错。有没有人有纠正这个错误的建议?

【问题讨论】:

    标签: asp.net iis-7


    【解决方案1】:

    有一次我在 IIS6 上遇到了这个问题,当时不知何故 ASP.NET ISAPI 东西被破坏了。

    跑步

    %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i 
    

    重新创建设置已经处理好了。

    【讨论】:

    • 如果您在 64 位 Windows 上,您需要将“Framework”文件夹更改为“Framework64”
    • 它也适用于 Windows 10 x64 中的 IIS 10.0。同样的错误,同样的解决方案。
    • 我错过了“64”。至关重要!
    【解决方案2】:

    这个解决方案对我有用...(我有 aspnet_regiis.exe -i 造成了一些损害)

    http://forums.iis.net/t/1157725.aspx

    1.找到您的应用程序池并右键单击 2.选择基本设置 3. 选择您当前的 .Net Framework 版本 4.重启应用池

    【讨论】:

      【解决方案3】:

      对我来说,它通过以下方式起作用

      安装 ASP.NET

      cd %windir%\Microsoft.NET\Framework64/v4.0.30319
      aspnet_regiis.exe -i
      
      • 下一步转到 IIS 管理器并单击服务器(根)节点。
      • 在功能视图的 IIS 部分中,打开“ISAPI 和 CGI​​ 限制”
      • 右键单击 ASP.NET 4 限制列并右键单击以允许

      希望它对你有用..

      【讨论】:

        【解决方案4】:

        对我来说,我的问题是因为我项目的 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 设置(这与上述解决方案相反告诉我做)。

        【讨论】:

        • 我在 system.webServer > 处理程序中有 ,删除该行使我的旧 ASPX 页面可以在我的 MVC Web 应用程序中工作。
        【解决方案5】:

        总是先在 Handler Mappings 中尝试“Revert to Parent”。

        尝试在 IIS 7.5 中运行 ASP.NET 4.0 时,我得到了 404.17。我尝试了以上所有方法,最终手动设置了正确的处理程序映射,错误消失了。

        然后,在另一个出现相同错误的网站上,我在 Handler Mappings 中尝试了“Revert to Parent”,它添加了 6 个 *.aspx 映射,一切正常。

        显然,您必须正确配置父级(从安装或其他方式),但这绝对是每个人都应该采取的第一步,因为它非常简单。

        【讨论】:

          【解决方案6】:

          对我来说,解决方案是从虚拟应用程序下的处理程序映射部分单击“从继承中恢复”。

          【讨论】:

            【解决方案7】:

            到目前为止,这些解决方案都不适合我。

            我找到了一些其他可能的解决方案(对我不起作用):

            【讨论】:

              【解决方案8】:

              解决这个问题只有一种方法...

              首次安装Windows7 然后安装具有所有功能的 IIS 7

              然后安装 Visual Studio 2008 / 2010

              我在 Visual Studio 2008 和 2010 上工作,但我以前从未见过此错误。

              我也可以在我朋友的电脑上试用。我也解决了这个错误。

              【讨论】:

                【解决方案9】:

                对我来说,这可以通过将 32 位应用程序设置为 true 来解决。

                【讨论】:

                  【解决方案10】:

                  以上都不适合我。 我们的服务器是 64 位的,因此将应用程序设置为允许 32 位应用程序为我们工作:

                  • 转到 Web 服务器\应用程序池
                  • 右键单击您网站使用的应用程序池。
                  • 点击高级设置...
                  • 将“启用 32 位应用程序”设置为 True。

                  我认为这是因为 Web 应用程序仅编译为 32 位。

                  【讨论】:

                    【解决方案11】:
                    %windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
                    

                    获得后为我工作 “试图加载格式不正确的程序......” 与32框架

                    也许你再用谷歌搜索一下就省事了

                    【讨论】:

                      【解决方案12】:

                      对我来说,this 有效。安装机器配置部分、处理程序、程序集、模块、协议和许多其他东西以正常工作。

                      【讨论】:

                        【解决方案13】:

                        对我来说,服务器功能中没有检查 HTTP 激活。

                        【讨论】:

                          【解决方案14】:

                          我们需要在 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
                          

                          【讨论】:

                            【解决方案15】:

                            WCF 服务下的 http 激活开启/关闭 windows 功能解决了该问题。

                            【讨论】:

                              【解决方案16】:

                              在我的情况下,以上答案都没有解决问题,原因是没有安装 CGI 模块

                              为了解决这个问题,我遵循了这些说明。

                              https://docs.microsoft.com/en-us/iis/configuration/system.webserver/cgi

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 2011-12-26
                                • 1970-01-01
                                • 2014-02-05
                                • 1970-01-01
                                • 2016-02-22
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多