尝试以 Azure Web 应用程序中的访问权限禁止的方式访问套接字

An attempt was made to access a socket in a way forbidden by its access permissions in Azure Web Apps

我是 运行 Azure 网站上的一个 webapi,可以调用外部 Web 服务。 WebAPI 每分钟处理大约 2K-3K 请求。

周期性地,许多套接字错误开始出现,表明:"An attempt was made to access a socket in a way forbidden by its access permissions"。无论外部 Web 服务的 IP 地址如何,似乎都会发生此错误。

起初,我认为这可能是暂时的端口耗尽,但我已将 "connectionManagement" 限制为最多 100 个连接。

这是什么原因造成的?

非常感谢。很乐意提供任何可能有用的信息。

6 月 1 日更新:- 每 6 月 2 日不起作用

我将以下内容添加到我的 web.config system.net 部分:

<defaultProxy enabled="false" useDefaultCredentials="false">
   <proxy/>
   <bypasslist/>
   <module/>
</defaultProxy>

它似乎有所帮助,因为我在过去 6 小时内没有看到这个问题。我不知道为什么这实际上会有所帮助,因为我没有使用任何与代理相关的东西。

有什么想法吗?

更新 6/2:

添加 defaultProxy 实际上似乎没有帮助。问题仍然存在。回到绘图板。

终于找到问题的原因了。该问题是由于端口耗尽而发生的。

我使用的是 NLog 电子邮件目标,随着时间的推移它会抓住并保持太多的 SMTP 连接(尽管最大连接限制为 100)。删除电子邮件目标后,问题不再出现。我还没弄明白为什么 NLog 会表现出这种行为。