0

Visual Studio 2010 でデバッグ モードで実行しようとしている nHibernate で完全にセットアップされ、正常にテストされたプロジェクトがあります。 int web\Global.Asax ファイル、および web.config ファイルの構成パラメーターにより、次のエラーが発生します。

メンバーのオーバーライド中に継承セキュリティ ルールに違反しました: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'。オーバーライドするメソッドのセキュリティ アクセシビリティは、オーバーライドされるメソッドのセキュリティ アクセシビリティと一致する必要があります。

行で

構成構成 = 新しい構成 ().構成 ();

次のコードブロックで

public static ISessionFactory SessionFactory;
    public static ISession OpenSession()
    {
        if (SessionFactory == null) //not threadsafe
        { //SessionFactories are expensive, create only once
            Configuration configuration = new Configuration().Configure();
            configuration.AddAssembly(Assembly.GetCallingAssembly());
            SessionFactory = configuration.BuildSessionFactory();
        }
        return SessionFactory.OpenSession();
    }

私は明示的にこのガイドに従っています: nHibernate プロジェクトのNHibernate で使用するために Log4Net を構成します。

4

2 に答える 2

2

https://stackoverflow.com/a/2977020/43846で詳しく説明されているように、log4net ソースにSecurityCritical属性を追加する必要があります。Util.ReadOnlyPropertiesDictionary.GetObjectData

于 2012-11-29T18:14:26.977 に答える
0

log4net のバージョン 1.2.11 をダウンロードする必要があります。.NET 4.0 をターゲットとするアセンブリが含まれており、その 1 つの属性だけでなく、さらに多くの固定された属性が含まれています。

于 2012-11-30T06:55:10.003 に答える