无法加载类型'System.Web.Mvc.ViewUserControl <SOMETYPE>'

Evg*_*nyt 10 .net asp.net-mvc .net-4.0

我正在尝试将ASP.NET MVC 2项目(VS2010)部署到Win Server 2008 R2

它在dev机器上完美运行.但是在Server 2008 R2上发生了奇怪的错误:当.ascx文件具有使用泛型类型的标头时:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyProj.Web.Models.RangeViewModel>" %>
Run Code Online (Sandbox Code Playgroud)

服务器报告无法加载类型'System.Web.Mvc.ViewUserControl <MyProj.Web.Models.RangeViewModel>'.

但是当我在.cs文件类型中声明某处时

public class AA : System.Web.Mvc.ViewUserControl<MyProj.Web.Models.RangeViewModel>
{
}
Run Code Online (Sandbox Code Playgroud)

并在<%@ Control标头中使用它.然后它按预期工作.

我错过了什么吗?

UPDATE

我分两步部署应用程序(在服务器上):

  1. 使用命令行MSBuild(适用于.NET 4)从源代码重建VS解决方案
  2. 启动自定义msbuild任务(具有此publih.msbuild文件),执行两个目标:Targets ="ResolveReferences; _CopyWebApplication"

Pan*_*nek 15

我发现视图引擎在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, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <controls>
          <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
        </controls>
        <!-- rest of your pages section -->
</pages>
Run Code Online (Sandbox Code Playgroud)


Evg*_*nyt 5

无法找到原因,但以下帮助(web.config):

<pages
         pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
         pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
         userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
Run Code Online (Sandbox Code Playgroud)

最初发现类似于asp.net mvc 1


mar*_*are 0

可能会搞乱服务器上的 ASP.NET MVC 安装。我建议卸载 MVC 并使用 Web Platform Installer 重新安装。当我使用下载的安装文件进行安装时,我也遇到了问题,所以我删除了所有内容并使用 Web 平台安装程序。

另一个建议是制作一个新的服务器盒(可以是虚拟的)并在那里尝试。

重建解决方案也可以提供帮助,并检查 web.config 是否也正常。

如果 MvcDiagnostics.aspx 工具显示任何异常,也请尝试。查看这篇博文

如果有什么帮助请告诉我们。