2013-01-09 9 views
8

Stworzyłem Mono 3.0.2 ze źródła (archiwum) i zbudowałem XSP zarówno z najnowszego archiwum targów, jak i najnowszego Githuba, ale nie jestem w stanie uruchomić względnie prostą aplikację asp.net z wykorzystaniem .net 4.5, ponieważ widzi "targetFramework =" 4,5 "w pliku web.config jako niepoprawny. Budowanie aplikacji i uruchamianie konsoli .NET 4.5 działa dobrze.Nie można uruchomić aplikacji asp.net 4.5 na xsp na Mono 3

To web.config w pytaniu:

<?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> 

I to jest wyjątek, który xsp4 rzuca:

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 --- 

A niektóre informacje o wersji/konfiguracji:

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 
[email protected]:~/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) 
[email protected]:~/Downloads/xsp$ 

Jeśli usunę elementy targetFramework z pliku web.config, błąd zniknie, ale ja po prostu otrzymasz 404, więc żaden z modułów http nie zostanie podłączony.

Wszelkie pomysły? Powiedziano mi, że xsp4 powinien działać dobrze, ale z tego, co widzę, wydaje się, że nie został zaktualizowany do obsługi 4.5.

+0

co masz na myśli mówiąc "zbudowany XSP zarówno z najnowszego archiwum targów, jak i najnowszego Githuba"? albo budujesz z tarballa, albo budujesz z github – knocte

+0

, a AFAIK tarball jest bardzo stary, więc powinieneś zbudować z github – knocte

+0

Całkiem proste, zbudowałem oba, próbowałem obu, oba dały ten sam problem. –

Odpowiedz

5

spróbować edytować ten plik:

vi /opt/mono/bin/xsp4 

(Twoja lokalizacja może być różna, ponieważ skompilowany to sam powinien wiedzieć, gdzie przechowywane pliki)

W to zmienić linię:

exec /opt/mono/bin/mono $MONO_OPTIONS "/opt/mono/lib/mono/4.0/xsp4.exe" "[email protected]" 

z tym:

exec /opt/mono/bin/mono $MONO_OPTIONS "/opt/mono/lib/mono/4.5/xsp4.exe" "[email protected]" 

i skopiuj plik wykonywalny:

cp /opt/mono/lib/mono/4.0/xsp4.exe /opt/mono/lib/mono/4.5/ 

Mam nadzieję, że chłopaki Mono uczynić go nieco więcej płynu w przyszłości, więc nie trzeba ręcznie to zrobić, ale dla mnie działa ta instrukcja obejście!

Znowu zrobiłem to pod CentOS, więc może być nieco inaczej w Ubuntu.

0

Wpadłem na ten sam problem z MVC 4 i Mono 3. Najdziwniejsze było to, że ten błąd nagle się pojawił. Odwrócenie moich zmian nie pomogło. W końcu skończyłem, usuwając mój folder z rozwiązaniem i sprawdzając świeżą wersję. To musiało usunąć niektóre utworzone pliki. Potem wszystko działało jak poprzednio.

Powiązane problemy