Невозможно запустить приложение asp.net 4.5 на xsp на Mono 3
Я собрал Mono 3.0.2 из исходного кода (tarball) и собрал XSP как из самого последнего tarball, так и из самого последнего на Github, но я не могу запустить относительно простое приложение asp.net с использованием.net 4.5, потому что оно видит 'targetFramework="4.5"'в файле web.config как недействительный. Сборка приложения и запуск консольного приложения.net 4.5 работает просто отлично.
Это вопрос web.config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<appSettings>
<add key="owin:HandleAllRequests" value="true" />
<add key="owin:SetCurrentDirectory" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
</configuration>
И это исключение, которое выбрасывает xsp4:
An exception has occurred while generating HttpException page:
System.NullReferenceException: Object reference not set to an instance of an object
at System.Web.Util.HttpEncoder.GetCustomEncoderFromConfig () [0x00000] in <filename unknown>:0
at System.Lazy`1[System.Web.Util.HttpEncoder].InitValue () [0x00000] in <filename unknown>:0
The actual exception which was being reported was:
System.Web.HttpException: Initial exception ---> System.Configuration.ConfigurationErrorsException: Error deserializing configuration section httpRuntime: Unrecognized attribute 'targetFramework'. (/home/srobbins/Projects/nancykatana/NancyKatana/Web.config line
1)
at System.Configuration.ConfigurationSection.DeserializeSection (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0
at System.Configuration.Configuration.GetSectionInstance (System.Configuration.SectionInfo config, Boolean createDefaultInstance) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationSectionCollection.get_Item (System.String name) [0x00000] in <filename unknown>:0
at System.Configuration.Configuration.GetSection (System.String path) [0x00000] in <filename unknown>:0
at System.Web.Configuration.WebConfigurationManager.GetSection (System.String sectionName, System.String path, System.Web.HttpContext context) [0x00000] in <filename unknown>:0
at System.Web.Configuration.WebConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0
at System.Web.HttpRuntime..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
И немного информации о версиях / конфигурации:
xsp-2.11
Build Environment
Install prefix: /usr/local
Datadir: /usr/local/share
Libdir: /usr/local/lib
Build documentation: yes
Mono 2.0 compiler: /usr/local/bin/gmcs
Mono 4.0 compiler: /usr/local/bin/dmcs
Target frameworks: .NET 2.0, .NET 4.0
Build SQLite samples: yes
srobbins@ubuntu-vm:~/Downloads/xsp$ /usr/local/bin/mono --version
Mono JIT compiler version 3.0.2 (tarball Tue Jan 8 08:23:06 GMT 2013)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
srobbins@ubuntu-vm:~/Downloads/xsp$
Если я удаляю элементы targetFramework из web.config, то ошибка исчезает, но я просто получаю 404, так что ни один из http-модулей не подключается.
Есть идеи? Мне сказали, что xsp4 должен работать просто отлично, но из того, что я вижу, он, по-видимому, не был обновлен до версии 4.5.
2 ответа
Попробуйте отредактировать этот файл:
vi /opt/mono/bin/xsp4
(ваше местоположение может быть другим, так как вы скомпилировали его самостоятельно, вы должны знать, где вы хранили файлы)
В нем измените строку:
exec /opt/mono/bin/mono $MONO_OPTIONS "/opt/mono/lib/mono/4.0/xsp4.exe" "$@"
С этим:
exec /opt/mono/bin/mono $MONO_OPTIONS "/opt/mono/lib/mono/4.5/xsp4.exe" "$@"
А затем скопируйте исполняемый файл:
cp /opt/mono/lib/mono/4.0/xsp4.exe /opt/mono/lib/mono/4.5/
Я надеюсь, что парни из Mono сделают его немного более плавным в будущем, поэтому нам не нужно делать это вручную, но для меня этот обходной мануал работает!
Опять же, я сделал это под CentOS, поэтому в Ubuntu все может быть по-другому.
Я столкнулся с той же проблемой с MVC 4 и Mono 3. Самое странное, что эта ошибка внезапно появилась. Отмена моих изменений не помогла. В конце концов я удалил папку с моими решениями и нашел новую версию. Это должно было удалить некоторые созданные файлы. После этого все заработало как раньше.