Castle Windsor funktioniert nicht unter Medium Trust
Beim Versuch, eine ASP.NET MVC-Anwendung auszuführen, die Castle Windsor verwendet, tritt der folgende Fehler auf.
Serverfehler in '/' Anwendung.
Vererbungssicherheitsregeln, die beim Überschreiben des Mitglieds "Castle.MicroKernel.DefaultKernel.InitializeLifetimeService ()" verletzt wurden. Der Sicherheitszugriff der überschreibenden Methode muss mit dem Sicherheitszugriff der zu überschreibenden Methode übereinstimmen.
Beschreibung: Während der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Überprüfen Sie die Stapelablaufverfolgung, um weitere Informationen zu dem Fehler und dessen Ursprung im Code zu erhalten.
Ausnahmedetails: System.TypeLoadException: Vererbungssicherheitsregeln wurden beim Überschreiben des Mitglieds "Castle.MicroKernel.DefaultKernel.InitializeLifetimeService ()" verletzt. Der Sicherheitszugriff der überschreibenden Methode muss mit dem Sicherheitszugriff der zu überschreibenden Methode übereinstimmen.
Quellfehler:
Während der Ausführung der aktuellen Webanforderung wurde eine nicht behandelte Ausnahme generiert. Informationen zu Ursprung und Position der Ausnahme können mithilfe des folgenden Ausnahmestapel-Trace ermittelt werden.
Stack Trace:
[TypeLoadException: Vererbungssicherheitsregeln wurden beim Überschreiben des Mitglieds "Castle.MicroKernel.DefaultKernel.InitializeLifetimeService ()" verletzt. Der Sicherheitszugriff der überschreibenden Methode muss mit dem Sicherheitszugriff der zu überschreibenden Methode übereinstimmen.]
Castle.Windsor.WindsorContainer..ctor () +0
Die VersammlungenCastle.Core.dll
undCastle.Windsor.dll
wurden aus dem Quellcode erstellt, der am verfügbar istGithub. Der Quellcode für die Assemblys enthält die DateiSecurityAssemblyInfo.cs
die den folgenden Quellcode hat:
// Sets up assembly level security settings
#if ! SILVERLIGHT
[assembly: System.Security.AllowPartiallyTrustedCallers]
#if DOTNET40
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level2)]
#endif
#endif
Ich habe mit überprüftILSpy dass dieSystem.Security.AllowPartiallyTrustedCallers
Das Attribut wird bei der Assembly für beide Dateien deklariert.
Die Webanwendung wird mit ausgeführt<trust level="Medium" />
.