1

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

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

我所做的是:

  • 我已经安装了 .NET Framework 4
  • 我添加了新的新应用程序池
  • 我已将新的虚拟目录添加到我的网站(托管 ASP .NET 2 Web 应用程序的同一网站)并将其转换为 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:

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

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

4

1 回答 1

1

为了让 v4 在 IIS6 上运行,我过去必须做的 2 件事......

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

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

应用扩展映射

如果可以确保更改生效,请重新启动 IIS 或回收上述应用后的相关应用程序池。

于 2013-11-14T11:29:53.413 回答