【发布时间】:2021-02-21 16:58:14
【问题描述】:
首先,在某些情况下:我正在使用 .NetCore 开发带有 Identity 的 API。一切都在云服务器上,在 Docker 内。创建用户后,会使用 mailkit 和网络邮件服务器通过 Plesk(托管在同一台机器上)向新用户发送一封电子邮件。通过 Apache 使用 ProxyPass 从子域到 localhost 上的端口通过重定向访问 docker
通过 JetBrain 的 Rider 调试时一切正常,但它无法处理服务器上 docker 中的电子邮件。
这是堆栈:
System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000001, 11): Resource temporarily unavailable
at System.Net.Dns.InternalGetHostByName(String hostName)
at System.Net.Dns.ResolveCallback(Object context)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source)
at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult)
at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult)
at System.Net.Dns.<>c.<GetHostAddressesAsync>b__25_1(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
我还没有尝试在另一台 linux 机器上运行 docker 进行测试。 我目前的猜测之一是 SSL 证书有问题,但我认为这不会导致 DNS 或任何内部套接字出现问题。
另一个猜测是 Docker 获取 DNS 主机名是个问题,但因为它在本地工作正常。
编辑:我多次尝试在 mac 上运行 docker,但仍然偶尔会触发错误,但并非总是如此。虽然总是在服务器上触发并且从不发送电子邮件
【问题讨论】: