Castle Windsor を使用する ASP.NET MVC アプリケーションを実行しようとすると、次のエラーが発生します。
「/」アプリケーションでサーバー エラーが発生しました。
メンバー 'Castle.MicroKernel.DefaultKernel.InitializeLifetimeService()' のオーバーライド中に継承セキュリティ ルールに違反しました。オーバーライドするメソッドのセキュリティ アクセシビリティは、オーバーライドされるメソッドのセキュリティ アクセシビリティと一致する必要があります。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.TypeLoadException: メンバーのオーバーライド中に継承セキュリティ ルールに違反しました: 'Castle.MicroKernel.DefaultKernel.InitializeLifetimeService()'。オーバーライドするメソッドのセキュリティ アクセシビリティは、オーバーライドされるメソッドのセキュリティ アクセシビリティと一致する必要があります。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[TypeLoadException: メンバーのオーバーライド中に継承セキュリティ ルールに違反しました: 'Castle.MicroKernel.DefaultKernel.InitializeLifetimeService()'. オーバーライドするメソッドのセキュリティ アクセシビリティは、オーバーライドされるメソッドのセキュリティ アクセシビリティと一致する必要があります。]
Castle.Windsor.WindsorContainer..ctor() +0
アセンブリは、 githubで入手可能なソース コードから構築されていCastle.Core.dll
ます。アセンブリのソース コードには、次のソース コードを含むファイルが含まれています。Castle.Windsor.dll
SecurityAssemblyInfo.cs
// Sets up assembly level security settings
#if ! SILVERLIGHT
[assembly: System.Security.AllowPartiallyTrustedCallers]
#if DOTNET40
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level2)]
#endif
#endif
ILSpyを使用しSystem.Security.AllowPartiallyTrustedCallers
て、両方のファイルのアセンブリで属性が宣言されていることを確認しました。
Web アプリケーションは で実行されてい<trust level="Medium" />
ます。