Azure App Service上的出站连接超时

时间:2019-08-31 17:08:11

标签: azure docker asp.net-core networking azure-web-app-service

我们正在使用 Azure App Services (B2计划,基于Linux的容器映像,无副本)托管一个 ASP.NET Core MVC(2.2.6)应用程序,会以平均每3分钟1个请求的速率触发对SOAP服务(它是外部供应商的服务)的请求。没有高负载期,请求计划每隔几分钟发生一次。

应用程序在99%的时间内都可以正常运行,但是从Azure仪表板重新启动容器(由于更新或维护)后,对SOAP服务的请求可能开始超时(超时间隔为设置为60秒)。有时,前2-3个请求会通过,然后每个请求都超时。但是,应用程序会在1.5-2小时内自行恢复一次,一切正常,直到下一个容器重新启动。

我们使用了Visual Studio的 WCF Web服务参考工具来生成WCF客户端代码和代理类。我们还将ChannelFactory类用于通道的可重用性。在经历超时的这段时间内,我尝试使用内置的HttpClient访问SOAP服务,该服务也超时。但是,当我使用SSH直接连接到容器并尝试使用CURL测试与SOAP服务的连接时,它正在工作。当然,我的本地计算机也没有超时。

这是我们遇到超时时的netstat -peanut快照(我删除了不相关的连接):

root@XXXXXXXXX:~# netstat -peanut
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        1      0 172.16.2.7:41451        XX.XXX.XX.XX:443        CLOSE_WAIT  0          6705221    1/dotnet
tcp        0      1 172.16.2.7:45254        XX.XXX.XX.XX:443        SYN_SENT    0          6876809    1/dotnet
tcp6       0      0 :::80                   :::*                    LISTEN      0          6703040    1/dotnet

没有超时时,不存在带有SYN_SENT的地址。

你们有没有遇到过类似的事情?你有什么线索可能导致它吗?

0 个答案:

没有答案