2

Mono 3.2 MVC4 WebAPI应用程序正在Debian x64 VPS服务器中运行。单声道从源代码编译并使用4.5子树。 应用程序需要Chrome或Safari浏览器。如何使用Mono WebAPI应用程序实现工作Web服务器

刷新浏览器窗口几次后,服务器无法正常工作。我试过所有已知免费possibilites:

的Apache +是mod_mono

按下浏览器的刷新按钮几次服务器随机返回500错误的一些网页 和Apache错误日志包含后“未能映射路径”异常。

我张贴在

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

单ASP.NET邮件列表中没有任何反应。

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

的Nginx +单FastCGI的-server4.exe

按住F5键,使200%的CPU使用率永远单的FastCGI-server4.exe

我张贴在

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

单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 --trace=E:System.Exception YourApp.exe 

这种方式是非常可能的,你觉得是什么原因造成的负荷:

+0

ServiceStack是免费的根据FSF – knocte

+0

根据servicestack.net/pricing免费只是非常有限的版本。关于未能映射路径错误,可能很容易解决。我发现可能导致这种情况的单声道源代码行。如何获得有关它的附加信息,mono在引发此异常时不会写入其他信息? – Andrus

+0

限量版支持!付费版本中没有更多功能,但如果您的软件不是开源的,则无法使用免费版本。我认为你不明白AGPL许可证。 – knocte

回答

1

当500错误发生,在某处单类库引发了异常,您可以通过使用跟踪了解更多在每种情况下都会遇到问题(要为mono-fastcgi执行此操作,您需要在调用mono-fastcgi-server4.exe的脚本中添加trace参数)。

+0

如果无法映射路径异常apache error.log包含我发布在http://stackoverflow.com/questions/20356779/how-to-fix-failed-to-map-path-errors-in- mono-mvc4-应用程序。堆栈跟踪可能位于https://github.com/mono/mono/blob/mono-3.2.1-branch/mcs/class/System.Web/System.Web/HttpRequest.cs#L1565中的第1565行。它发生在应用程序代码被执行。追踪提供哪些额外的信息来解决这个问题?如何修复它或获得有关原因的更多信息?在多次浏览器刷新之后,它总是在不同的调用中发生。 – Andrus

+0

太棒了!你越来越接近解决问题。现在要弄清楚为什么这个异常不会在低负载下抛出,为什么它会在重负载下抛出。可能是因重负而暴露在某处的竞赛状况?您需要非常仔细地检查该HttpRequest类 – knocte

+0

在此服务器中运行有几个MVC4应用程序。也许mod_mono或mod_mono_server将请求传递给错误的线程。负载不重:浏览器刷新后,我会等待所有通话完成并查看Chrome控制台。如果控制台是空的,这是重复的。在Chrome控制台中刷新了500次错误后,总是会出现apache错误日志中的这个异常。它在不包含Ajax调用的应用程序主页中不会发生。 – Andrus

相关问题