如何使用Mono Web API应用程序实现工作Web服务器

时间:2013-12-21 17:23:22

标签: asp.net-mvc-4 asp.net-web-api mono mod-mono fastcgi-mono-server

Mono 3.2 MVC4 WebAPI应用程序在Debian x64 VPS服务器上运行。 Mono是从源代码编译的,使用了4.5子树。 应用程序需要Chrome或Safari浏览器。

刷新浏览器窗口几次后,服务器无法正常工作。我尝试了所有已知的免费可能性:

Apache + mod_mono

按几次浏览器刷新按钮后,服务器会随机返回500错误 和apache错误日志包含“无法映射路径”异常。

我在

中发布了它

https://stackoverflow.com/questions/20356779/how-to-fix-failed-to-map-path-errors-in-mono-mvc4-application

并在

Mono ASP.NET邮件列表,没有任何回复。

服务器中有多个单声道应用程序,也许mod_mono选择了错误的线程,或者在单声道的webapi映射实现中有一些错误。

Nginx + mono-fastcgi-server4.exe

按住F5键会在mono-fastcgi-server4.exe中永久消耗200%的CPU使用率

我在

中发布了它

https://stackoverflow.com/questions/20512978/how-to-limit-mono-197-cpu-usage-in-mono-fastcgi-server

并在

没有任何解决方案的Mono ASP.NET邮件列表。

看起来单声道fastcgi服务器中存在错误或者它与单声道3.2不兼容

直接使用xsp4.exe

如果浏览器窗口多次刷新,则会导致Chrome中的“服务器无法返回数据”。

我在

中发布了这个

https://code.google.com/p/chromium/issues/detail?id=329311

没有回应。

也许xsp4没有正确实现http协议。

没有尝试过ServiceStack,因为它不能用于所需的闭源开发。此外,应用程序还使用图像,css,js文件和MVC视图,这些视图也需要服务。

如何为mono返回正确的数据创建适当的服务器?

1 个答案:

答案 0 :(得分:1)

当500个错误发生时,单声道类库中的某个位置抛出异常,您可以通过使用跟踪找到更多:

mono --trace=E:System.Exception YourApp.exe

通过这种方式,您很可能会发现在每种情况下导致负载问题的原因(对于mono-fastcgi,您需要在调用mono-fastcgi的脚本中添加trace参数) -server4.exe)。