【问题标题】:Does ASP.NET MVC have to be installed on the deployment target machine?ASP.NET MVC 是否必须安装在部署目标机器上?
【发布时间】:2013-04-02 13:19:37
【问题描述】:

是否需要在您尝试将 ASP.NET MVC 3 网站部署到的计算机上安装 ASP.NET MVC?

我认为由于您的应用程序的 bin 文件夹已经有 System.Web.Mvc 和其他必要的 DLL,所以只要 ASP.NET(您的目标版本)就没有必要在部署服务器上安装 MVC ,在这种情况下,已安装 v4)。

我正在使用 IIS。我不知道是哪个版本,但它有经典视图,所以它必须是7或更早。默认应用程序池如下所示(并且没有模式):

关于框不显示版本号。 MMC 管理单元管理控制台版本是 3.0。这是在 64 位 Windows 2003 R2 标准版服务器上运行的。

我为什么要问这个/我想做什么

我通过制作部署包、将其移动到服务器然后运行部署脚本(.cmd 文件)来部署我的 MVC 应用程序。应用程序目录是在 IIS 中创建的。但是,当我浏览到应用程序时,我得到一个 403 说目录列表被拒绝,这是有道理的。 IIS 无法解析 MVC 路由问题。

我在这里检查了几个线程,它们(thread 1thread 2)似乎都表明必须在目标上安装 MVC 3。我会这样做,但我只是想检查一下。真的需要安装吗?

【问题讨论】:

  • 无需对服务器进行任何更改。只需确保为 .NET 正确配置了应用程序池即可。
  • 是的,您不需要在服务器上安装 asp.net mvc3。我的服务器上没有安装 asp.net visual studio。正如他们所说,您只需要适当的服务器配置。

标签: asp.net asp.net-mvc asp.net-mvc-3 deployment web-deployment


【解决方案1】:

Windows Server 2003 R2 附带 IIS 6。有关路由的信息请参见:Deploying ASP.NET MVC to IIS 6

正如 bertl 所说,如果您使用二进制文件部署 Web 应用程序,它会起作用(假设已经安装了正确的 .NET 版本并且网站/应用程序池配置正确。)

【讨论】:

  • 谢谢,门南卡拉。那非常有用。我在那篇文章中列出的 4 个选项中选择了选项 1。我现在得到一个 404。
  • @WaterCoolrv2 有什么进展吗?
【解决方案2】:

服务器上不需要安装MVC是正确的。如果您在部署中包含 DLLS,则此方法有效。这就是许多人所说的“BIN 部署”。 Scott Hanselman 很好地描述了它是如何工作的。

Phil Haack 描述了另一种(更简单的)方法。

【讨论】:

  • 谢谢,bertl。但是 IIS 是如何知道 MVC 路由的呢?如,如果用户浏览您的应用程序时没有指定文档,如 serverName/fooApp,IIS 将查找其默认文档列表以调用 default.aspx 或 default.htm,它不会知道您的 MVC 应用程序的路由.
  • MVC 将自己注册为 MessageHandler。不需要在服务器上物理存在资源。 asp.net/web-api/overview/working-with-http/…
  • 谢谢,bertl。我也照菲尔·哈克所说的做了。我已经按照 Scott Hanselman 概述的步骤进行了操作。我仍然收到 403。
【解决方案3】:

这是我多年前用来解决 IIS 6 路由问题的一篇很棒的文章

http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

你肯定需要 asp.net 4.0。您可以将所有 dll 复制到 bin 文件夹中,但最好安装在主机上。根据 IIS 7 之前的版本,您还必须对 routing 进行一些调整。

【讨论】:

    【解决方案4】:

    是的,您不需要在服务器上安装 asp.net mvc3。我使用的服务器上没有 Visual Studio。您只需要适当的服务器配置。显然有几个原因导致 403 和 404 错误。

    403 - 禁止

    403.1 - 禁止执行访问。
    403.2 - 禁止读取访问。
    403.3 - 禁止写访问。
    403.4 - 需要 SSL。
    403.5 - 需要 SSL 128。
    403.6 - IP 地址被拒绝。
    403.7 - 需要客户端证书。
    403.8 - 站点访问被拒绝。
    403.9 - 用户过多。
    403.10 - 配置无效。
    403.11 - 密码更改。
    403.12 - 映射器拒绝访问。
    403.13 - 客户证书被吊销。
    403.14 - 目录列表被拒绝。
    403.15 - 超出客户端访问许可。
    403.16 - 客户端证书不受信任或无效。
    403.17 - 客户端证书已过期或无效。
    403.18 - 无法在当前应用程序池中执行请求的 URL。此错误代码特定于 IIS 6.0。
    403.19 - 无法为此应用程序池中的客户端执行 CGI。此错误代码特定于 IIS 6.0。
    403.20 - Passport 登录失败。此错误代码特定于 IIS 6.0。

    404 - 未找到。

    404.0 - (None) - 找不到文件或目录。
    404.1 - 在请求的端口上无法访问网站。
    404.2 - Web 服务扩展锁定策略阻止此请求。
    404.3 - MIME 映射策略阻止此请求。

    对于解决方案检查此链接here。我发现该链接非常有用。我希望它也能帮助你。 :)

    【讨论】:

      猜你喜欢
      • 2019-07-30
      • 2020-01-18
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      • 2010-11-18
      • 2020-04-03
      相关资源
      最近更新 更多