Как реализовать работающий веб-сервер с приложением Mono WebAPI
Приложение Mono 3.2 MVC4 WebAPI работает на сервере Debian x64 VPS. Mono скомпилирован из исходного кода и используется поддерево 4.5. Приложение требует браузера Chrome или Safari.
После обновления окна браузера несколько раз сервер не работает должным образом. Я перепробовал все известные бесплатные возможности:
Apache + mod_mono
После нажатия кнопки обновления браузера несколько раз сервер случайным образом возвращает ошибку 500 для некоторых страниц, и журнал ошибок apache содержит исключение "сбой при отображении пути".
Я отправил это в
https://stackru.com/questions/20356779/how-to-fix-failed-to-map-path-errors-in-mono-mvc4-application
И в
Моно ASP.NET список рассылки без какого-либо ответа.
На сервере имеется множество монофонических приложений, возможно, mod_mono выбирает неправильный поток или есть какая-то ошибка в реализации отображения webapi в моно.
Nginx + mono-fastcgi-server4.exe
Удержание клавиши F5 приводит к 200% загрузке ЦП навсегда в mono-fastcgi-server4.exe
Я отправил это в
https://stackru.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, которые также необходимо обслуживать.
Как создать правильный сервер для моно, который возвращает правильные данные?
1 ответ
Когда происходит 500 ошибок, где-то в библиотеках моно классов выдается исключение, вы можете узнать больше, используя трассировку:
mono --trace=E:System.Exception YourApp.exe
Таким образом, очень возможно, что вы узнаете, что вызывает проблемы с загрузкой, которые вы видите в каждом случае (чтобы сделать это для mono-fastcgi, вам нужно будет добавить аргумент trace в скрипт, который вызывает mono-fastcgi-server4. EXE).