Я делаю CMS MVC 4 приложения, которые используют MEF для загрузки плагина во время выполнения. Но всякий раз, когда программа вызывает:MVC 4: Несовместимая версия DotNetOpenAuth с System.Web.Mvc вызывает нарушения правил безопасности наследования по типу
DirectoryCatalog dirCatalog = new DirectoryCatalog(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"));
Это вызывает эту ошибку на dirCatalog.Parts:
Inheritance security rules violated by type: 'DotNetOpenAuth.Messaging.OutgoingWebResponseActionResult'. Derived types must either match the security accessibility of the base type or be less accessible.
Моя DotNetOpenAuth.Core версия 4.3.0.0 и DotNetOpenAuth.AspNet версия 4.3.0.0 это по умолчанию, когда мы создали новые проекты MVC 4 в Visual Studio.
My System.Web.Mvc версия - 5.2.3.0.
Если я изменил версию System.Web.Mvc на 4.0.0.0 в моем Web.config, dirCatalog.Parts не выдает ошибку, но почему-то, когда код пытается вызвать контроллер, он производит эту ошибку:
Inheritance security rules violated by type: 'System.Web.Mvc.MvcWebRazorHostFactory'. Derived types must either match the security accessibility of the base type or be less accessible.
Я полагаю, что версия DotNetOpenAuth несовместима с моей версией MVC. Есть ли способ обхода этого?
Имел аналогичную проблему с «OutgoingWebResponseActionResult» и вот что нужно сделать: http://idevexplorer.com/2014/12/dotnetopenauth-usage-and-implementation-in-mvc-5/ (смотрите шаг 8 их учебник). К сожалению, он показывает, как решить эту проблему, если вы используете результат непосредственно, вы должны найти способ применить этот обходной путь в своем сценарии. –