Я размещаю веб-службу ServiceStack в Apache с mod-mono, у меня есть mono-3.0.0 и xsp-2.10.2. Я разместил пример hello world, ориентированный на .Net framework 2.0 и использующий mod-mono-server2, и он работал нормально. Затем я изменяю проект на целевой .Net framework 4.0 и использую mod-mono-server4. Я получаю такую ошибку:
Не удалось загрузить файл или сборку System.Web.Extensions, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 или одну из их зависимостей. Система не может найти указанный файл.
System.IO.FileNotFoundException: не удалось загрузить файл или сборку System.Web.Extensions, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 или одну из его зависимостей. Системе не удается найти указанный файл. Имя файла: 'System.Web.Extensions, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35' в System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity, Boolean refonly) [0x00000] в: 0 в System.AppDomain.Load (System.String assemblyString) [0x00000] в: 0 в (удаленное взаимодействие-вызов-с-проверкой оболочки) System.AppDomain: Загрузить (строка) в System.Reflection. Assembly.Load (System.String assemblyString) [0x00000] в: 0 в System.Web.Compilation.BuildManager.LoadAssembly (информация о System.Web.Configuration.AssemblyInfo, System.Collections.Generic.List`1 al) [0x00000] в : 0 в System.Web.Compilation.BuildManager.GetReferencedAssemblies () [0x00000] в: 0 в System.Web.Compilation.BuildManager.CallPreStartMethods () [0x00000] в: 0
Но файл System.Web.Extensions установлен в GAC:
gacutil -l System.Web.Extensions
В GAC установлены следующие сборки: System.Web.Extensions, Version = 1.0.61025.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 System.Web.Extensions, Version = 3.5.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 System.Web.Extensions, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 Количество элементов = 3
Даже если я настрою MonoPath специально для получения версии 4.0, возникает такая же ошибка:
MonoPath /usr/local/lib/mono/4.0
Я тоже заметил это:
Информация о версии: Mono Runtime Версия: 2.10.5 (tarball Пт 28 октября 10:20:24 IST 2011); Версия ASP.NET: 4.0.30319.1
Версия Mono Runtime говорит о 2.10.5, хотя у меня установлен mono-3.0.0, я не знаю, имеет ли эта информация значение для этой проблемы.
Я попытался запустить mod-mono-server4 напрямую и получил следующее сообщение об ошибке:
мод-моно-сервер4
mod-mono-server4 Отсутствует метод System.Configuration.IConfigurationSectionHandler :: Create (объект, объект, XmlNode) в сборке /usr/local/lib/mono/4.0/System.dll, на которую имеется ссылка в сборке / usr / local / lib / mono /4.0/System.Configuration.dll Исключение при чтении файла конфигурации: System.MissingMethodException: метод не найден: 'System.Configuration.IConfigurationSectionHandler.Create'. в System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] в: 0 в System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] в: 0 в системе .Configuration.ConfigurationManager.get_AppSettings () [0x00000] в: 0 в Mono.WebServer.Apache.Server.get_AppSettings () [0x00000] в: 0 в Mono.WebServer.Apache.Server + ApplicationSettings..ctor () [0x00000] in: 0 mod-mono-server4 Прослушивание: / tmp / mod_mono_server Корневой каталог: / usr / local / bin Ошибка: сервер уже прослушивает / tmp / mod_mono_server
Я искал эту ошибку в Google, и это привело меня к этой ошибке:
Возможно, ошибка на mod-mono-server4 является источником другой ошибки ... Я попробую получить xsp 3.0 и посмотрю, решит ли это проблему.
Любые идеи?
Спасибо
./configure --prefix=/usr/local
части. Выполните командуwhereis mono
и посмотрите, какой префикс первый./usr
может быть? В этом случае повторите процедуру еще раз с полученным префиксом. После этого запуститеmono --version
, чтобы убедиться. - person konrad.kruczynski   schedule 28.11.2012