我的Web应用程序在docker上运行,并尝试调用IIS上托管的外部api,但我无法访问外部api。抛出以下错误:但是当我的Web应用程序在本地iis上运行时,便能够连接api并获得响应。请帮我。
InnerException {System.Net.Http.HttpRequestException: No such host is known ---> System.Net.Sockets.SocketException: No such host is known at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, enter image description hereCancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken) at System.Threading.Tasks.ValueTask1.get_Result() at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Threading.Tasks.ValueTask1.get_Result() at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask1 creationTask) at System.Threading.Tasks.ValueTask1.get_Result() at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at System.Net.Http.HttpClient.GetStringAsyncCore(Task1 getTask)} System.Exception {System.Net.Http.HttpRequestException}
最佳答案
我认为问题是Docker DNS服务器。您可以尝试使用真实的DNS服务器,例如8.8.8.8
如果您在Windows上使用Docker,则可以尝试更新DNS设置8.8.8.8
如果您使用的是Ubuntu,则可以尝试以下设置:
# /etc/docker/daemon.json
{
"dns": ["8.8.8.8"]
}
关于.net - 无法从Docker托管的Web应用程序调用外部api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53434581/