グラフAPIを使用してActive Directoryデータにアクセスしようとしています。アプリケーションの実行時に次のエラーが発生します。
説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細と、エラーがコードのどこで発生したかについては、スタックトレースを確認してください。
Exception Details: "System.TypeLoadException:Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'。アクセスしにくい。」
ソースエラー:
現在のWeb要求の実行中に、未処理の例外が生成されました。例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。
スタックトレース:
[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
私は初心者なので、エラーに悩まされます。誰でもこのエラーを克服するために何をする必要があるか教えてください
バグはGitHub( https://github.com/dotnet/corefx/issues/111 )でクローズされ、新しいバージョンのSystem.Net.Http
がリリースされたようです。
NuGetを使用してSystem.Net.Http
をバージョン4.3.1
にアップグレードできたため、問題は解決しました。
これは私にとってはうまくいきました: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に再度設定する必要があることに注意してください。
アップグレードを見つけましたSystem.Net.Http
を介してNuget
で修正します。
Visual Studio System.Net.Http
で4.3.0
を4.0.0
からNuGet Package Manager
にダウングレードして解決しました
.netコアWebアプリケーション(.netフレームワーク)での作業の問題に直面しました。私は聞いたすべてを試してみましたが、.net 4.6.1から.net 4.5.1への移行のみが役立ちました。