5

就像标题所说的那样 - 我试图按照以下方式进行:

http://www.integratedwebsystems.com/2011/12/get-started-with-amazon-ec2-run-your-net-mvc3-razor-site-in-the-cloud-with-linux-mono-2/

虽然我可以得到一个非常简单的 ASP MVC 4 站点 - 任何涉及 WebAPI 项目的东西都会在我的 apache 日志中给我 500 和非常神秘的错误:

System.NullReferenceException: Object reference not set to an instance of an object
  at System.Web.Util.HttpEncoder.GetCustomEncoderFromConfig () [0x00000] in <filename unknown>:0 
  at System.Lazy`1[System.Web.Util.HttpEncoder].InitValue () [0x00000] in <filename unknown>:0 

我猜不是,但想知道我是否做错了什么!

干杯。

4

2 回答 2

7

从 Mono 3.0.2 开始,尚不支持 ASP.NET WebAPI。WebAPI 使用HttpRequest.GetBufferlessInputStream()来获取 HTTP 请求数据,但这在 Mono 中尚未实现。如果您克服了上述错误(可能是由于 Web.config 中的配置不正确),您将遇到类似于此错误的错误:

程序集 /opt/mono-3.0.0/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll 中缺少方法 System.Web.HttpRequest::GetBufferlessInputStream(),在程序集 /tmp/ 中引用www-data-temp-aspnet-0/2956977a/assembly/shadow/5cf10065/cf4140da_93b040bf_00000001/System.Web.Http.WebHost.dll

有关错误报告,请参阅https://bugzilla.xamarin.com/show_bug.cgi?id=8008

于 2013-01-03T03:04:32.943 回答
2

ServiceStack 不再开源

你可以看看ServiceStack。它是 WebApi 的一个得到很好支持的替代方案,它也可以在 Mono 上运行。它非常快速、可扩展且功能强大;它的文档可以在这里这里找到。

于 2013-07-19T21:59:49.743 回答