我很难配置我的服务器来托管MVC4应用程序。这是我的情况:
我做的是:
所以,我认为这就足够了。但是当我使用root url访问我的应用程序时,我得到的第一件事是403.我检查了安全选项,它们似乎没问题。 接下来,我尝试访问我的一个控制器操作,例如:
http://servername/home/index
现在我收到404错误。好的,所以我已启用浏览文件,我试图访问web.config,以检查发生了什么,并收到错误:
无法加载文件或程序集'System.Core,Version = 2.0.5.0, Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'或 其中一个依赖项。给定的程序集名称或代码库是 无效。 (来自HRESULT的异常:0x80131047)
我还运行了regiis命令:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -s W3SVC/2049612577/root/cip-new/
但仍然徒劳无功。最重要的是,这是错误的,但我不知道发生了什么。
我做了一些测试。我做了什么,是我从Basic模板创建了一个基本的MVC4应用程序,并将其发布到服务器上。它奏效了。但是,当我将它发布到服务器到同一目录时,我得到了错误:
预应用程序启动初始化方法运行类型WebActivator.ActivationManager引发异常,并显示以下错误消息:无法加载文件或程序集'System.Core,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes'或其依赖项之一。给定的程序集名称或代码库无效。 (HRESULT异常:0x80131047)。]
答案 0 :(得分:1)
过去我必须做的两件事情才能让v4在IIS6上运行...
确保使用.Net版本4.x的网站在其自己的应用程序池中运行,与使用.Net版本2.x的网站分开
如果您使用的是Razor,我注意到IIS6并不会立即知道该怎么做。因此,您需要配置Application Extensions Mappings。根据是使用C#还是VB,为.cshtml或.vbhtml添加扩展名映射。我认为这就是你收到404错误的原因。
如果您可以确保更改生效,请重新启动IIS或回收上面应用的应用池。