我试图将ASP.NET MVC 2项目(VS2010)部署到Win Server 2008 R2
它完美地在开发机器上工作.但是Server 2008 R2出现奇怪的错误:
当.ascx文件具有使用泛型类型的头文件时:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyProj.Web.Models.Rangeviewmodel>" %>
服务器报告无法加载类型’System.Web.Mvc.ViewUserControl< MyProj.Web.Models.Rangeviewmodel>‘.
但是当我在.cs文件类型中的某个地方声明时
public class AA : System.Web.Mvc.ViewUserControl<MyProj.Web.Models.Rangeviewmodel> { }
并在<%@ Control标题中使用它.那么它应该是正常的. 我错过了什么吗? UPDATE 我在两个步骤中部署应用程序(在服务器上):
>使用命令行MSBuild(对于.NET 4)从源重建VS解决方案
>启动自定义msbuild任务(具有publih.msbuild文件),执行两个目标:Targets =“ResolveReferences; _CopyWebApplication”
解决方法
我看到视图引擎在Inherit属性中编译强类型基类的问题.我有同样的问题,并更新了Web.Config的“页面”部分帮助:
<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage,PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl,PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc,PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> <!-- rest of your pages section --> </pages>