Asp.net mvc 4 如何使用Mono WebAPI应用程序实现工作web服务器

Asp.net mvc 4 如何使用Mono WebAPI应用程序实现工作web服务器,asp.net-mvc-4,asp.net-web-api,mono,mod-mono,fastcgi-mono-server,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\u mono 在多次按下浏览器刷新按钮后,服务器会为某些页面随机返回500错误 apache错误日志包含“映射路径失败”异常 我把它寄了进去 而且 Mono ASP.NET邮件列表没有任何响应 服务器中有很多mono应用程

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

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

Apache+mod\u mono

在多次按下浏览器刷新按钮后,服务器会为某些页面随机返回500错误 apache错误日志包含“映射路径失败”异常

我把它寄了进去

而且

Mono ASP.NET邮件列表没有任何响应

服务器中有很多mono应用程序,可能是mod_mono选择了错误的线程,或者mono中的webapi映射实现中存在一些错误

Nginx+mono-fastcgi-server4.exe

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

我把它寄了进去

而且

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

看起来mono fastcgi服务器中有bug,或者它与mono 3.2不兼容

直接使用xsp4.exe

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

我把这个贴在

没有回应

可能xsp4没有正确实现http协议

尚未尝试ServiceStack,因为它无法用于所需的封闭源代码开发。此外,应用程序还使用图像,css,js文件和MVC视图,这也需要服务


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

当发生500个错误时,mono类库中的某个地方引发了异常,您可以通过跟踪了解更多信息:

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

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

ServiceStack是免费的,根据fsfaccord to ServiceStack.net/pricing free是非常有限的版本。关于未能映射路径错误,可能很容易解决。我发现可能是mono源代码中的行导致了这种情况。如何获取有关它的附加信息原因是,mono在抛出此异常时不会写入附加信息?支持方面的有限版本!付费版本中没有更多功能,但如果您的软件不是开源的,则无法使用免费版本。我想你不了解AGPL许可证。我需要服务器进行封闭源代码开发,所以看起来我不能免费使用ServiceStack,然后不要随意说
,说
。软件的自由度是关于用户的,而不是关于开发人员的。在映射路径异常失败的情况下,apache error.log包含我在中发布的堆栈跟踪。堆栈跟踪可能指向执行应用程序代码之前的1565行。trace将提供哪些其他信息来解决这个问题?如何修复或获取有关原因的更多信息?在多次刷新浏览器后,它总是在不同的调用中出现。太棒了!你离解决问题越来越近了。现在需要弄清楚为什么在低负载下不会抛出异常,为什么在重负载下抛出异常。也许某个地方的比赛条件会被重负荷暴露?您需要仔细检查该HttpRequest类。该服务器上运行着几个MVC4应用程序。也许mod_mono或mod_mono服务器将请求传递到错误的线程。负载不重:在浏览器刷新后,我将等待所有调用完成并查看Chrome控制台。如果console为空,则会重新复制。刷新一段时间后,chrome控制台中的500错误和apache错误日志中的此异常总是发生。它不会出现在不包含ajax调用的应用程序主页中。我注释掉了这些行(github历史显示这些行是在一段时间前添加的),并编译了3.2.5。这似乎解决了问题。我使用2.6版本的mod_mono。我是否也应该重新编译mod_mono?请将您的更改作为请求提交