我正在尝试将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&lt; MyProj.Web.Models.RangeViewModel&gt;'。
但是当我在.cs文件类型中声明某个地方,如
public class AA : System.Web.Mvc.ViewUserControl<MyProj.Web.Models.RangeViewModel>
{
}
并在&lt;%@ Control 标头中使用它。然后它可以正常工作。
我错过了什么吗?
更新
我分两步(在服务器上)部署应用程序:
答案 0 :(得分:14)
我发现视图引擎在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>
答案 1 :(得分: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">
最初发现类似于asp.net mvc 1
答案 2 :(得分:1)
我有类似的问题。有几个要点
这是我得到的
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl <MyNamespace.MyModel>" %>
<%@ Import Namespace="MyNamespace" %>
<% var model = (MyModel)Model; %>
<h1><% model.MyField %></h1>
答案 3 :(得分:0)
可能搞砸了服务器上的ASP.NET MVC安装。我建议卸载MVC并使用Web Platform Installer重新安装。当我使用下载的安装文件安装时,我也遇到了问题,因此我删除了所有内容并使用了Web平台安装程序。
另一个建议是制作一个新的服务器盒 - 可以是虚拟的 - 并尝试在那里。
同样重建解决方案可以帮助并检查web.config也可以。
如果MvcDiagnostics.aspx工具显示任何异常,请尝试。查看this博文
如果有任何帮助,请告诉我们。