Подтвердить что ты не робот

Наследование sec rules нарушено по типу: "System.Net.Http.WebRequestHandler".

Я пытаюсь получить доступ к данным Active Directory через графический API. Я получаю следующую ошибку при запуске приложения.

Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека, чтобы получить дополнительную информацию об ошибке и где она возникла в коде.

Сведения об исключении: "System.TypeLoadException: Правила безопасности наследования, нарушенные по типу:" System.Net.Http.WebRequestHandler ". Производные типы должны либо соответствовать безопасности доступности базового типа или быть менее доступным.

Ошибка источника:

Необработанное исключение было создано во время выполнения текущего веб-запроса. Информация о происхождении и местоположении исключения может быть идентифицирована с использованием трассы стека исключений ниже.

Трассировка стека:

[TypeLoadException: Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'. Derived types must either match the security accessibility of the base type or be less accessible.]
   Microsoft.Owin.Security.OpenIdConnect.OpenIdConnectAuthenticationMiddleware.ResolveHttpMessageHandler(OpenIdConnectAuthenticationOptions options) +0
   Microsoft.Owin.Security.OpenIdConnect.OpenIdConnectAuthenticationMiddleware..ctor(OwinMiddleware next, IAppBuilder app, OpenIdConnectAuthenticationOptions options) +996
   lambda_method(Closure , OwinMiddleware , IAppBuilder , OpenIdConnectAuthenticationOptions ) +54

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +92
   System.Delegate.DynamicInvokeImpl(Object[] args) +117
   System.Delegate.DynamicInvoke(Object[] args) +12
   Microsoft.Owin.Builder.AppBuilder.BuildInternal(Type signature) +236
   Microsoft.Owin.Builder.AppBuilder.Build(Type returnType) +21
   Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize(Action`1 startup) +565
   Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build(Action`1 startup) +58
   Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() +95
   System.Threading.LazyInitializer.EnsureInitializedCore(T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory) +115
   System.Threading.LazyInitializer.EnsureInitialized(T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory) +72
   Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context) +96
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +523
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +364
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +303

[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +770
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +195


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1069.1 

Как я новичок, я поражен ошибкой. Может кто-нибудь, пожалуйста, сообщите мне, что нужно сделать, чтобы преодолеть эту ошибку.

4b9b3361

Ответ 1

Кажется, ошибка теперь закрыта на GitHub (https://github.com/dotnet/corefx/issues/11100), и была выпущена новая версия System.Net.Http.

Мне удалось обновить System.Net.Http до версии 4.3.1 с помощью NuGet и решить эту проблему.

Ответ 2

Это сработало для меня: System.Net.Http v4.1.0.0, похоже, есть некоторые проблемы. В файле web.config или app.config укажите старую версию (v4.0.0.0)

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
     ...
        <dependentAssembly>
            <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.0.0.0" />
        </dependentAssembly>

Обратите внимание, что при установке нового несвязанного пакета NuGet изменения bindingRedirect могут быть перезаписаны, и вам необходимо снова установить привязку к 4.0.0.0.

Ответ 3

Я нашел обновление System.Net.Http через Nuget исправляет это.

Ответ 4

Я решил с понижением System.Net.Http от 4.3.0 до 4.0.0 с помощью Visual Studio NuGet Package Manager

Ответ 5

Я столкнулся с проблемой работы с сетевым веб-приложением .net(.net framework). Я пробовал все, что прочитал, но только переход на .net 4.5.1 из .net 4.6.1 помог.