mod_mono: случайные ошибки CompilationException - PullRequest
1 голос
/ 22 января 2012

После перезапуска сервера я иногда получаю случайные ошибки CompilationException вроде этого:

CompilationException: CS0006: Metadata file `/tmp/apache-temp-aspnet-0/ca373c84/assembly/shadow/10cad1cb/02cb7ade_1201ab15_00000001/ZedGraph.dll' could not be found -> HttpException: Single file build failed

и вы не можете получить доступ к приложению. Если я перезапущу сервер снова, проблема исчезнет.

Файл, который вызывает ошибку, может быть одним из моих собственных dll или зависимостей, например, mysql.dll.

Я использую mono 2.10.2, CentOS выпуск 5.7 (Final), Apache и mod_mono на VPS с линодой.

Есть идеи, что может быть причиной?

Редактировать: Поскольку мои проблемы начались, когда я переехал в Линод и они используют XEN, я нашел опцию --with-xen_opt = yes, которая выглядит многообещающе: http://mono -project.com / Advanced_Mono_Compile_Options

Ответы [ 3 ]

2 голосов
/ 23 января 2012

Звучит как ошибка (состояние гонки?) С копированием и компиляцией теней.Были и другие найденные и исправленные ранее ... см. http://grendello.blogspot.com/2007/08/new-modmono-and-xsp-developments.html

И это отчет о похожей проблеме в 2006 http://lists.ximian.com/pipermail/mono-list/2006-March/030970.html

Вместо того, чтобы перезагрузить систему, вы можете попробоватьперезапуск апача.Обратите внимание, я обнаружил, что это может помочь остановить apache и затем запустить, а не перезапустить.

Вы также можете включить панель управления mod_mono и перезапустить приложение оттуда.Добавьте это в apache config.

<Location /monocp>
  SetHandler mono-ctrl
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1 <YOURIP>
</Location>

Чтобы автоматизировать этот процесс, взгляните на Monit .

0 голосов
/ 25 апреля 2012

FWIW, у меня была точно такая же проблема на выделенном сервере без виртуализации (8 core i7, x86 Ubuntu Server Edition), поэтому я не считаю, что это проблема, вызванная Xen.Как для OP (SCL), так и для кого-либо еще с этой проблемой, я задокументировал свою работу в другом посте SO здесь , а также подал отчет об ошибке в Mono / Xamarin.

Это похоже на состояние гонки, но не связано с виртуализацией.

0 голосов
/ 09 февраля 2012

Похоже, что проблемы вызваны виртуализацией XEN и моно скомпилированными двоичными файлами.Я скомпилировал mono с параметром --with-xen_opt = yes, но не смог скомпилировать XSP, поэтому не смог проверить, решил ли он это точно, но перенес точно такое же приложение на выделенный сервер и после 2 миллионов запросовЯ не обнаружил никаких ошибок.

Обновление : Проверьте ответ Махмуда

...