Question

Mono 3.2 MVC4 WebAPI application is running in Debian x64 VPS server. Mono is compiled from source and 4.5 subtree is used. Application requires Chrome or Safari browser.

After refreshing browser window several times server does not work properly. I tried all known free possibilites:

Apache + mod_mono

After pressing browser refresh button several times server randomly returns 500 error for some pages and apache error log contains "failed to map path" exception.

I posted it in

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

and in

Mono ASP.NET mailing list without any response.

There are number of mono applications in server, maybe mod_mono selects wrong thread or is there some bug in webapi mapping implementation in mono.

Nginx + mono-fastcgi-server4.exe

Holding down F5 key causes 200% CPU usage forever in mono-fastcgi-server4.exe

I posted it in

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

and in

Mono ASP.NET mailing list without any solution.

Is looks like there is bug in mono fastcgi server or it is not compatible with mono 3.2

Using xsp4.exe directly

It causes "server does not return data" in Chrome if browser window is refreshed several times.

I posted this in

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

without response.

Maybe xsp4 does not implement http protocol properly.

Havent tried ServiceStack since it cannot used for closed source development which is required. Also application uses also images, css, js files and MVC views which needs also served.

How to create proper server for mono which returns correct data ?

Was it helpful?

Solution

When 500 errors happen, somewhere in the mono class libraries an exception was thrown, you can find out more by using tracing:

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

This way it's very possible that you find out what is causing the load problems you're seeing in each case (to do this for mono-fastcgi, you would need to add the trace argument in the script that calls mono-fastcgi-server4.exe).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top