如何设置IIS6来托管ASP .NET 4 MVC4应用程序

时间:2013-11-14 09:25:40

标签: asp.net .net asp.net-mvc-4 razor iis-6

我很难配置我的服务器来托管MVC4应用程序。这是我的情况:

  • 我有Windows 2003服务器SP2
  • 到目前为止,我所有托管的应用程序都针对.NET Framework 3.5,因此使用ASP .NET 2.我使用单个网站来托管Web应用程序
  • 现在,我想主持第一个针对ASP .NET 4的应用程序

我做的是:

  • 我已经安装了.NET Framework 4
  • 我添加了新的新应用程序池
  • 我已将新的虚拟目录添加到我的网站(托管ASP .NET 2网络应用程序的同一网站)并将其转换为Web应用程序。接下来,我在ASP .NET选项卡上选择了ASP .NET版本4

所以,我认为这就足够了。但是当我使用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/

但仍然徒劳无功。最重要的是,这是错误的,但我不知道发生了什么。

编辑1:

我做了一些测试。我做了什么,是我从Basic模板创建了一个基本的MVC4应用程序,并将其发布到服务器上。它奏效了。但是,当我将它发布到服务器到同一目录时,我得到了错误:

  

预应用程序启动初始化方法运行类型WebActivator.ActivationManager引发异常,并显示以下错误消息:无法加载文件或程序集'System.Core,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes'或其依赖项之一。给定的程序集名称或代码库无效。 (HRESULT异常:0x80131047)。]

1 个答案:

答案 0 :(得分:1)

过去我必须做的两件事情才能让v4在IIS6上运行...

  1. 确保使用.Net版本4.x的网站在其自己的应用程序池中运行,与使用.Net版本2.x的网站分开

  2. 如果您使用的是Razor,我注意到IIS6并不会立即知道该怎么做。因此,您需要配置Application Extensions Mappings。根据是使用C#还是VB,为.cshtml或.vbhtml添加扩展名映射。我认为这就是你收到404错误的原因。

  3. application extension mapping

    如果您可以确保更改生效,请重新启动IIS或回收上面应用的应用池。