8

ソース (tarball) から Mono 3.0.2 をビルドし、最新の tarball と Github の最新の両方から XSP をビルドしましたが、.net 4.5 を使用して比較的単純な asp.net アプリを実行できません。 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$

web.config から targetFramework 要素を削除すると、エラーは解消されますが、404 が表示されるだけなので、http モジュールが接続されていません。

何か案は?xsp4 は問題なく動作するはずだと言われましたが、私が見る限り、4.5 を処理するように更新されていないようです。

4

2 に答える 2

5

そのファイルを試して編集します。

 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 では少し異なる可能性があります。

于 2013-03-26T14:09:15.163 に答える
0

MVC 4 と Mono 3 で同じ問題に遭遇しました。最も奇妙なことは、このエラーが突然現れたことです。変更を元に戻しても解決しませんでした。最終的に、ソリューション フォルダーを削除し、新しいバージョンをチェックアウトすることになりました。これにより、作成されたファイルがいくつか削除されたに違いありません。その後、すべてが以前と同じように機能しました。

于 2014-02-22T17:02:14.427 に答える