【问题标题】:ASP.Net MVC Controller causing Not Found error when deployed to IIS 7ASP.Net MVC 控制器在部署到 IIS 7 时导致未找到错误
【发布时间】:2009-07-10 09:55:24
【问题描述】:

我正在使用 ASP.Net MVC 开发一个网站。我在 Home 控制器中有一个方法,它在调用时返回部分视图。问题是当我使用 jQuery 调用控制器方法时,出现 404 Not Found 错误。

只有当应用程序部署在 IIS 7 上时才会出现这种情况。它在开发过程中运行良好,但在部署后,通过 jQuery.get 方法或 post 调用时找不到任何控制器。

提前感谢大家帮助我。

【问题讨论】:

  • 可能需要做一些更正:它是 IIS,不是 ISS,它不是 MVC 3.5,它是带有 .NET 3.5 的 MVC 1.0。
  • 您可以在地址栏中输入任何控制器/操作 URL 并让页面正常工作吗?

标签: asp.net asp.net-mvc


【解决方案1】:

我遇到了同样的问题。对我来说简单的解决方法是做一个aspnet_regiis -r

【讨论】:

    【解决方案2】:

    错误是 asp.net 错误(黄色和红色)还是默认的 iis7 html 错误?如果它的 iis7 默认错误,请确保 IIS7 安装了 asp.net,当我第一次开始使用它时,这让我很困惑。 (程序和功能并添加windows组件并确保在IIS下选择asp.net)

    【讨论】:

      【解决方案3】:

      其实网站是在运行的,我可以在页面之间导航,只有通过jQuery.get或者post方法调用才会报错。我想,ISS 7 在识别它是一种控制器方法方面存在问题。错误文本如下所示。

      HTTP 错误 404.0 - 未找到 您要查找的资源已被删除、名称已更改或暂时不可用。

      谢谢。

      【讨论】:

        【解决方案4】:

        确保您已安装并运行 ASP.NET MVC。此外,请确保您的应用程序已正确安装并带有适当的引用。

        就像 Tony 上面所说的那样,确保您实际上可以在浏览器中访问完整的 URI(控制器/方法),看看它是否可以正常工作。

        jQuery.get 方法正在访问的 URL 是什么?

        如果有,请检查您是如何连接 Ajax 调用的。

        您的代码中的方法是否定义了 AcceptVerbs 属性? [AcceptVerbs(HttpVerbs.Post)]

        【讨论】:

          【解决方案5】:

          如果您将 mvc 应用程序部署为虚拟网站,请确保您的虚拟网站和根站点都将其应用程序池设置为集成管道。

          【讨论】:

            【解决方案6】:

            如果您在 IIS7 上运行 ASP.NET MVC,请确保将 IIS 配置为在“集成管道模式”而不是“经典”模式下运行。在这种模式下,您将获得更大的路由成功。 More here.

            【讨论】:

              【解决方案7】:

              我有同样的问题。 通过更改 ajax url 解决了问题。 举个例子, 如果您使用 ajax 调用控制器: 必须像这样写 url == url: '@Url.Action("actionmethod", "controller")', 而不是 ===== url: '/controller/actionmethod',

              谢谢

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2015-12-10
                • 2022-10-13
                • 1970-01-01
                • 2011-01-18
                • 1970-01-01
                • 2011-01-04
                • 2018-11-15
                • 1970-01-01
                相关资源
                最近更新 更多