【发布时间】:2021-05-15 23:57:03
【问题描述】:
当我使用 iis express 运行这个 Asp.Net 核心 webapi 时,它运行良好。但是,如果我使用 docker 容器运行同一个项目,则会显示错误:bearer was challenged.
IdentityServer4.AccessTokenValidation.IdentityServerAuthenticationHandler[12]
我是 | AuthenticationScheme:承载被挑战。
我是 |信息:IdentityServer4.Hosting.IdentityServerMiddleware[0]
我是 |调用 IdentityServer 端点:IdentityServer4.Endpoints.TokenEndpoint for /connect/token
我是 |信息:IdentityServer4.AspNetIdentity.ResourceOwnerPasswordValidator[0]
失败:Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[3]
我是 |处理消息时发生异常。
我是 | System.InvalidOperationException:IDX20803:无法从“https://localhost:8081/.well-known/openid-configuration”获取配置。
我是 | ---> System.IO.IOException:IDX20804:无法从以下位置检索文档:“https://localhost:8081/.well-known/openid-configuration”。
我是 | ---> System.Net.Http.HttpRequestException:无法分配请求的地址(本地主机:8081)
我是 | ---> System.Net.Sockets.SocketException (99): 无法分配请求的地址
我是 |在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError 错误,CancellationToken cancelToken)
我是 |在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 令牌)
我是 |在 System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea,ValueTask connectTask,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.DefaultConnectAsync(SocketsHttpConnectionContext 上下文,CancellationToken cancelToken)
我是 |在 System.Net.Http.ConnectHelper.ConnectAsync(Func3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken) iam | --- End of inner exception stack trace --- iam | at System.Net.Http.ConnectHelper.ConnectAsync(Func3 回调,DnsEndPoint 端点,HttpRequestMessage requestMessage,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage 请求,布尔异步,CancellationToken 取消令牌)
我是 |在 System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage 请求,布尔异步,布尔 doRequestAuth,CancellationToken 取消令牌)
我是 |在 System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage 请求,HttpCompletionOption 完成选项,布尔异步,布尔 emitTelemetryStartStop,CancellationToken 取消令牌)
我是 |在 Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(字符串地址,CancellationToken 取消)
我是 | --- 内部异常堆栈跟踪结束 ---
我是 |在 Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(字符串地址,CancellationToken 取消)
我是 |在 Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfigurationRetriever.GetAsync(字符串地址,IDocumentRetriever 检索器,CancellationToken 取消)
我是 |在 Microsoft.IdentityModel.Protocols.ConfigurationManager1.GetConfigurationAsync(CancellationToken cancel) iam | --- End of inner exception stack trace --- iam | at Microsoft.IdentityModel.Protocols.ConfigurationManager1.GetConfigurationAsync(CancellationToken 取消)
我是 |在 Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()
我是 |失败:IdentityServer4.AccessTokenValidation.IdentityServerAuthenticationHandler[0]
我是 | IDX20803:无法从“https://localhost:8081/.well-known/openid-configuration”获取配置。
我是 | System.InvalidOperationException:IDX20803:无法从“https://localhost:8081/.well-known/openid-configuration”获取配置。
我是 | ---> System.IO.IOException:IDX20804:无法从以下位置检索文档:“https://localhost:8081/.well-known/openid-configuration”。
我是 | ---> System.Net.Http.HttpRequestException:无法分配请求的地址(本地主机:8081)
我是 | ---> System.Net.Sockets.SocketException (99): 无法分配请求的地址
我是 |在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError 错误,CancellationToken cancelToken)
我是 |在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 令牌)
我是 |在 System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea,ValueTask connectTask,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.DefaultConnectAsync(SocketsHttpConnectionContext 上下文,CancellationToken cancelToken)
我是 |在 System.Net.Http.ConnectHelper.ConnectAsync(Func3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken) iam | --- End of inner exception stack trace --- iam | at System.Net.Http.ConnectHelper.ConnectAsync(Func3 回调,DnsEndPoint 端点,HttpRequestMessage requestMessage,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage 请求,布尔异步,CancellationToken 取消令牌)
我是 |在 System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage 请求,布尔异步,布尔 doRequestAuth,CancellationToken 取消令牌)
我是 |在 System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage 请求,布尔异步,CancellationToken cancelToken)
我是 |在 System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage 请求,HttpCompletionOption 完成选项,布尔异步,布尔 emitTelemetryStartStop,CancellationToken 取消令牌)
我是 |在 Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(字符串地址,CancellationToken 取消)
我是 | --- 内部异常堆栈跟踪结束 ---
我是 |在 Microsoft.IdentityModel.Protocols.HttpDocumentRetriever.GetDocumentAsync(字符串地址,CancellationToken 取消)
我是 |在 Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectConfigurationRetriever.GetAsync(字符串地址,IDocumentRetriever 检索器,CancellationToken 取消)
我是 |在 Microsoft.IdentityModel.Protocols.ConfigurationManager1.GetConfigurationAsync(CancellationToken cancel) iam | --- End of inner exception stack trace --- iam | at Microsoft.IdentityModel.Protocols.ConfigurationManager1.GetConfigurationAsync(CancellationToken 取消)
我是 |在 Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()
我是 |在 Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()
我是 |在 Microsoft.AspNetCore.Authentication.AuthenticationHandler`1.AuthenticateAsync()
我是 |在 Microsoft.AspNetCore.Authentication.AuthenticationService.AuthenticateAsync(HttpContext 上下文,字符串方案)
我是 |在 IdentityServer4.AccessTokenValidation.IdentityServerAuthenticationHandler.HandleAuthenticateAsync()
我是 |信息:IdentityServer4.AccessTokenValidation.IdentityServerAuthenticationHandler[7]
【问题讨论】:
标签: asp.net-core docker-compose asp.net-core-webapi identityserver4 asp.net-core-3.1