Azure Webjob:尝试以访问权限禁止的方式访问套接字 x.x.x.x:80

Azure Webjob: An attempt was made to access a socket in a way forbidden by its access permissions x.x.x.x:80

我知道到目前为止有几个问题涉及此错误 - 但由于 Azure 上的网络作业,还没有人生成此错误。

我的代码采用 C# 形式 Console Application。我的代码的主要部分:

HttpClient client = new HttpClient();
var byteArray = Encoding.ASCII.GetBytes("user:password");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
HttpResponseMessage response = await client.GetAsync("http://xx.xx.xx.xxx/cgi-bin/snapshot.cgi?channel=0");
byte[] myBytes = await response.Content.ReadAsByteArrayAsync();
string convertedFromString = Convert.ToBase64String(myBytes);

(上面的代码是由Main方法调用的)

如果在我的本地机器上执行,它工作得很好。如果我将此代码添加到应用服务(ASP.Net 核心项目的一部分)使用的 API 方法中,它也可以工作。

但是,当作为 Azure 网络作业上传时,出现此错误:

An error occurred while sending the request.

Unable to connect to the remote server

An attempt was made to access a socket in a way forbidden by its access permissions xx.xx.xx.xxx:80

关于如何克服这个问题有什么想法吗?我正在寻找任何可能的 solution/work-around.

An attempt was made to access a socket in a way forbidden by its access permissions xx.xx.xx.xxx:80

据我了解,我认为您可能会遇到来自 Azure Web App sandbox 的传出连接限制。另外,我建议您可以将您的应用程序托管计划扩展到更大的实例以缩小此问题的范围。

另外,还有一些类似的问题,大家可以参考一下:

Intermittent crashes in Azure Web Application

Starving outgoing connections on Windows Azure Web Sites