如何在Mono中运行MVC3或更新的应用程序

时间:2012-09-30 22:38:59

标签: c# asp.net-mvc-3 visual-studio-2010 c#-4.0 mono

使用Microsoft Web Developer Express 2010创建默认ASP .NET MVC 3应用程序

应用程序发布到文件系统并复制到安装了mono 2.10.8,Apache和mod_mono的Debian服务器。

尝试运行应用程序会导致错误:

Server Error in '/mvc3test' Application

--------------------------------------------------------------------------------

Could not load type 'System.Web.WebPages.Razor.RazorBuildProvider' from assembly 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Description: HTTP 500. Error processing request.

Stack Trace: 



System.TypeLoadException: Could not load type 'System.Web.WebPages.Razor.RazorBuildProvider' from assembly 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
  at (wrapper managed-to-native) System.Type:type_is_assignable_from (System.Type,System.Type)
  at System.Type.IsAssignableFrom (System.Type c) [0x00000] in <filename unknown>:0 
  at System.Web.Compilation.BuildProvider.RegisterBuildProvider (System.String extension, System.Type providerType) [0x00000] in <filename unknown>:0 
  at System.Web.WebPages.Razor.PreApplicationStartCode.Start () [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.PreApplicationStartCode.Start () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0  

--------------------------------------------------------------------------------
Version information: Mono Runtime Version: 2.10.8.1 (mono-2-10/70a5c95 Wed Feb 8 18:11:45 CET 2012); ASP.NET Version: 4.0.30319.1

bin目录包含从windows复制的必需dll:

EntityFramework.dll
mvc3test.dll
System.Web.Entity.dll
System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
mvc3test.pdb
EntityFramework.xml

所以所有必需的dll都存在

如何在单声道中运行mvc3或mvc4应用程序或修复此错误?

2 个答案:

答案 0 :(得分:3)

需要更多的dll。您应该右键单击您的项目并选择Add Deployable Dependencies,然后检查前两个框(如果您使用sql ce,则检查所有3个框)

请参阅此http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

哦,2.10.x分支当前不支持MVC4。

答案 1 :(得分:0)

检查copy local = true,特别是对于mvc.dll {cproj文件中的提示路径下的<private>true</private>