gpt4 book ai didi

iis-7 - IIS 7.0/Windows Server 2008 上的 ASP.NET MVC 3 应用程序出现 404.0 错误

转载 作者:行者123 更新时间:2023-12-03 08:48:36 24 4
gpt4 key购买 nike

我正在尝试将 ASP.NET MVC 3 应用程序部署到 Windows 2008 x64 服务器(显然运行 IIS 7.0),而 IIS 似乎不想正确地提供内容。所有请求都会导致 404.0 错误,因为请求与任何处理程序都不匹配,并且 IIS 正在尝试使用 StaticFile 处理程序来提供请求。该问题似乎与 .NET 4.0 有关,因为我有一个 MVC 2 应用程序在为 .NET 2.0 运行时配置的应用程序池中运行良好。

在 Windows 7 和 Windows Server 2008 R2 上将相同的应用程序部署到 IIS 7.5 服务器时,我没有遇到任何问题。

在部署之前,2008 服务器没有安装 .NET 4.0 或 ASP.NET MVC 3,所以这是我在部署应用程序之前采取的步骤:

  • 已安装 .NET 4.0
  • 运行 aspnet_regiis.exe(来自 Framework64/v4.0.30319 文件夹)
  • 使用 Web 平台安装程序安装了 ASP.NET MVC 3
  • 应用 MS 更新 KB980368使某些 IIS 7.0 或 IIS 7.5 处理程序能够处理 URL 不以句点
  • 结尾的请求

    对应用程序中的静态资源(JavaScript 文件、图像等)的请求顺利通过,但是对 MVC 操作的任何请求都会失败并出现 404.0 错误。我注意到 IIS 正在使用 StaticFile 处理程序来处理这些请求,这显然是不正确的。据我所知,ASP.NET 4.0 处理程序(即 ExtensionlessUrl-ISAPI-4.0* 处理程序)已正确定义,所以我不知道为什么/如何处理这些处理程序之一的请求,并且会落在所有一直到 StaticFile 处理程序。

    我还遇到了以下 MS knowledge base article其中提到您应该确保在遇到 404 错误的服务器上启用/安装 HTTP 重定向和静态内容压缩。我检查了一下,我的服务器已经启用了这两个功能。我什至尝试删除并重新安装这些功能无济于事。

    在这一点上,我完全不知道为什么它不能正常工作。我已经能够在 2 个不同的 IIS 7.0 服务器上复制该问题。我错过了什么?

    最佳答案

    您实际上只是提醒我,我需要在此处的环境中解决此问题。如果您的情况与我的情况相同,那么这是一个简单的解决方法。

    只需将以下内容添加到您的 Web 配置中:

    <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />

    编辑 : 就手头的问题提供进一步的解释。就我而言,发生的事情是当我添加自定义路由映射时,IIS 将请求视为文件夹/静态文件请求,因此跳过了 ASP.NET 工作进程。这通常在开发环境下表现不同,因为它在开发 Web 服务器下运行,该服务器还将通过 .net 进程传递所有请求。

    此 Web Config 条目告诉 IIS,即使 IIS 确定它是静态文件或文件夹,您也应该在每个 Web 请求上运行模块。

    关于iis-7 - IIS 7.0/Windows Server 2008 上的 ASP.NET MVC 3 应用程序出现 404.0 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111091/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com