如何在Mono 2.10.8上成功托管ASP.NET MVC4 RC

ene*_*.dk 10 mono mod-mono asp.net-mvc-4 xsp4

我正在尝试在Mono 2.10.8.1之上托管ASP.NET MVC4 RC项目.我第一次访问应用程序时遇到以下异常:

Missing method System.Web.Security.FormsAuthentication::get_IsEnabled() in assembly /usr/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll, referenced in assembly /tmp/root-temp-aspnet-0/eaee30a1/assembly/shadow/5cf10065/40974e7d_1c664e18_00000001/System.Web.Http.WebHost.dll
Run Code Online (Sandbox Code Playgroud)

根据http://www.mono-project.com/Compatibility,这应该在Mono 2.10.8中实现.Microsoft将该属性列为.NET Framework 4.0:http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.isenabled.aspx

是否存在某种解决方法,或者目前无法在Mono上主持MVC4?

我应该注意到,在Apache2上使用XSP4和mod_mono时,我遇到了这个问题.

单声道版本如下:

Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-1~dhx1~lucid1)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  x86
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            Included Boehm (with typed GC and Parallel Mark)
Run Code Online (Sandbox Code Playgroud)

kno*_*cte 9

TL/DR:仍然不建议在Mono下运行MVC4,而是运行MVC3.

长话:在Mono 2.10.x发布时,微软还没有完全发布ASP.NET堆栈作为开源(Razor是仍然是封闭源代码的组件之一).

最近微软终于开源了完整的堆栈,Mono将它包含在他们的树中,但这只发生在master分支中(只有Mono 2.11.x的预览版包含它).此外,异步API尚未在Mono中实现(而MVC4依赖于它们),因此最好的选择是使用MVC3,现在使用Mono 3.0.1版本.

甚至更长的故事:http://tirania.org/blog/archive/2012/Mar-28.html