是否必须在部署目标计算机上安装ASP.NET MVC?

时间:2013-04-02 13:19:37

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

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

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

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

Default Application Pool

“关于”框不显示版本号。 MMC管理单元管理控制台版本为3.0。它在64位Windows 2003 R2 Standard Edition服务器上运行。

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

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

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

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

这是我多年前用来解决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进行一些调整。

答案 2 :(得分:1)

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

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

答案 3 :(得分: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 - Mapper拒绝访问。
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 - (无) - 未找到文件或目录 404.1 - 在请求的端口上无法访问网站。
404.2 - Web服务扩展锁定策略阻止此请求 404.3 - MIME映射策略阻止此请求。

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