Castle Windsor nie działa w Medium Trust

Podczas próby uruchomienia aplikacji ASP.NET MVC, która używa Castle Windsor, pojawia się następujący błąd.

Błąd serwera w aplikacji „/”.

Naruszono reguły zabezpieczeń dziedziczenia podczas nadpisywania elementu: „Castle.MicroKernel.DefaultKernel.InitializeLifetimeService ()”. Dostępność zabezpieczeń metody nadrzędnej musi być zgodna z dostępnością zabezpieczeń metody, która jest nadpisywana.

Opis: wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania internetowego. Zapoznaj się ze śledzeniem stosu, aby uzyskać więcej informacji o błędzie i miejscu jego powstania.

Szczegóły wyjątku: System.TypeLoadException: naruszono reguły zabezpieczeń dziedziczenia podczas nadpisywania elementu: „Castle.MicroKernel.DefaultKernel.InitializeLifetimeService ()”. Dostępność zabezpieczeń metody nadrzędnej musi być zgodna z dostępnością zabezpieczeń metody, która jest nadpisywana.

Błąd źródła:

Nieobsługiwany wyjątek został wygenerowany podczas wykonywania bieżącego żądania WWW. Informacje dotyczące pochodzenia i lokalizacji wyjątku można zidentyfikować za pomocą poniższego śledzenia stosu wyjątków.

Ślad stosu:

[TypeLoadException: naruszono reguły zabezpieczeń dziedziczenia podczas nadpisywania elementu: „Castle.MicroKernel.DefaultKernel.InitializeLifetimeService ()”. Dostępność zabezpieczeń metody nadrzędnej musi być zgodna z dostępnością zabezpieczeń metody zastępowanej.]
Castle.Windsor.WindsorContainer..ctor () +0

ZespołyCastle.Core.dll iCastle.Windsor.dll zostały zbudowane z kodu źródłowego dostępnego nagithub. Kod źródłowy zestawów zawiera plikSecurityAssemblyInfo.cs który ma następujący kod źródłowy:

// Sets up assembly level security settings
#if ! SILVERLIGHT
[assembly: System.Security.AllowPartiallyTrustedCallers]
#if DOTNET40
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level2)]
#endif
#endif

Sprawdziłem używającILSpy żeSystem.Security.AllowPartiallyTrustedCallers atrybut jest deklarowany w zespole na obu plikach.

Aplikacja internetowa jest uruchomiona z<trust level="Medium" />.

questionAnswers(1)

yourAnswerToTheQuestion