【问题标题】:Can MVC run on 3.5 IIS6? NON SP1MVC 可以在 3.5 IIS6 上运行吗?非 SP1
【发布时间】:2009-07-09 09:42:09
【问题描述】:

我被引导相信 MVC 应用程序是 BIN 可部署的,因此可以部署到任何 ASP.net 3.5 兼容的服务器。我正在尝试使用 3.5(无 SP1)部署到 Windows Server 2003 x64,但无法正常工作。

我在点击主页时收到以下信息,由于我们的应用配置,主页会重定向到 /Account/LogOn 视图。

找不到页面

我已经将三个(加上扩展,我不记得为什么)MVC dll 设置为 Copy Local,因此它们最终位于 bin 文件夹中。我正在发布应用程序,然后将其复制到服务器:

  • System.Web.Abstractions.dll
  • System.Web.Mvc.dll
  • System.Web.Routing.dll
  • System.Web.Extensions.dll

有谁知道我做错了什么?该应用程序可以在我们拥有 3.5 SP1 的另一台机器上运行,也可以在安装了 MVC 的开发机器上运行。

我已经检查了我能想到的所有内容,确保权限正确,等等。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    IIS 6 无法正确处理 .mvc 扩展名。除其他事项外,您必须将 .mvc 映射到 ASP.NET 处理程序。这是为您提供的演练:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

    【讨论】:

    • 我们没有使用扩展,它不工作的机器和它工作的机器(SP1)都没有安装 MVC,所以我不希望对环境?我也不确定能否在我们的生产环境中更改 IIS。
    • 您不必安装 MVC,但您必须部署 MVC 程序集。如果你不能对 IIS 进行更改,恐怕你会遇到麻烦。
    • 当然,虽然我已经部署了这些程序集,但它在非 sp1 机器上不起作用,但它在 sp1 机器上运行,没有 IIS 更改。这是我感到困惑的部分。
    【解决方案2】:

    您是否在不起作用的服务器上设置了通配符映射?有关示例,请参阅"Deploying ASP.NET MVC to IIS 6"。您基本上需要将所有请求映射到 ASP.NET ISAPI DLL 并告诉 IIS 不要尝试验证该文件是否存在。不知道这是否是您的问题,但它在部署中曾多次困扰我。

    【讨论】:

    • 好吧,我不知道它是怎么发生的,也不知道是谁干的,但是在可以工作的服务器上,里面有通配符映射,这就解释了为什么它在一个上工作而不是另一个工作。哎呀,这很糟糕。谢谢大家。
    【解决方案3】:

    使用 IIS6,您不能使用像 /Account/LogOn 这样的无扩展 URL。您必须执行类似/Account.aspx/LogOn 的操作。“.aspx”实际上几乎可以是任意扩展名,但您需要该扩展名。您的路线也需要考虑扩展。

    【讨论】:

    • 令人困惑,因为它在测试服务器上运行良好,即 Win Server 2003 64bit II6 Framework 3.5 SP1,它只是在非 sp1 机器上,它没有,这在其他方面是相同的那个有效的。
    • 您确定您使用的是 IIS6 而不是 Cassini?因为它适用于卡西尼。
    • 是的,肯定的,这两台机器是专用的测试/登台机器。
    • 好吧,那么我期待您的问题的正确答案,因为我很想知道您是如何让 IIS6 使用 ASP.NET 路由进行无扩展 URL 的。
    • 您可以在 IIS6 中执行无扩展 URL,正如 Jakob 在他的回答中所说。这是有关如何操作的链接:haacked.com/archive/2008/11/26/…
    【解决方案4】:

    检查以确保运行您的网站的应用程序池配置为运行 ASP .Net 2.0,有时它默认为 1.1,这会导致与您的问题类似的问题。

    【讨论】:

      猜你喜欢
      • 2013-01-16
      • 2011-04-01
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 2011-08-17
      • 2011-09-01
      相关资源
      最近更新 更多