1

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

我认为由于您的应用程序的 bin 文件夹已经具有 System.Web.Mvc 和其他必要的 DLL,因此只要 ASP.NET(您的目标版本,在此案例 v4) 已安装。

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

默认应用程序池

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

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

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

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

4

4 回答 4

2

Windows Server 2003 R2 附带 IIS 6。请参阅有关路由的内容:将 ASP.NET MVC 部署到 IIS 6

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

于 2013-04-02T14:00:11.470 回答
1

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

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

于 2013-04-02T13:25:23.230 回答
1

Here is an awesome article I used many years ago to resolve the routing for IIS 6

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

You definitely need asp.net 4.0. You could copy all the dll's into the bin folder but preferably installed on the host would be the better idea. Depending on the version of IIS, pre 7, you would have to make some adjustments for the routing as well.

于 2013-04-02T13:23:37.593 回答
1

是的,您不需要在服务器上安装 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 映射策略阻止此请求。

如需解决方案,请在此处查看此链接。我发现该链接非常有用。我希望它也能帮助你。:)

于 2013-04-10T09:18:36.027 回答