Mono 3.2 MVC4 WebAPI应用程序在Debian x64 VPS服务器上运行。 Mono是从源代码编译的,使用了4.5子树。 应用程序需要Chrome或Safari浏览器。
刷新浏览器窗口几次后,服务器无法正常工作。我尝试了所有已知的免费可能性:
Apache + mod_mono
按几次浏览器刷新按钮后,服务器会随机返回500错误 和apache错误日志包含“无法映射路径”异常。
我在
中发布了它并在
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返回正确的数据创建适当的服务器?
答案 0 :(得分:1)
当500个错误发生时,单声道类库中的某个位置抛出异常,您可以通过使用跟踪找到更多:
mono --trace=E:System.Exception YourApp.exe
通过这种方式,您很可能会发现在每种情况下导致负载问题的原因(对于mono-fastcgi,您需要在调用mono-fastcgi的脚本中添加trace参数) -server4.exe)。