Azure托管服务出错“发送请求时发生错误”

时间:2019-09-23 10:07:23

标签: asp.net-web-api azure-web-sites

我们已经开始收到由 Azure App Service 托管的 ASP.NET Web API 服务之一的错误。该服务允许将图像(作为序列化的字节数组)发布到我们的后端。该服务已经运行了一年以上,没有任何问题,但突然开始引发以下错误。

  

PostInspectionImagesTests引发异常:   System.Net.Http.HttpRequestException:发送时发生错误   请求。 ---> System.Net.WebException:基础连接   已关闭:接收时发生意外错误。 ->   System.IO.IOException:无法从传输读取数据   连接:远程强行关闭了现有连接   主办。 ---> System.Net.Sockets.SocketException:现有连接   被远程主机强行关闭

这是发布请求的代码。

private static async Task<HttpResponseMessage> PostData(string url, HttpContent content, string token)
{
    RoutingTasksPostDeploymentTests.Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(RoutingTasksPostDeploymentTests.Subscriber, token);
    return await RoutingTasksPostDeploymentTests.Client.PostAsync(new Uri(url), content);
}

我们使用 HttpClient 类的静态实例,因为它效率更高。

这是我用来创建测试图像的代码。

private static byte[] GetImage(int imageSize)
{
    var randBytes = new byte[imageSize];
    System.Security.Cryptography.RNGCryptoServiceProvider rand = 
        new System.Security.Cryptography.RNGCryptoServiceProvider();
    rand.GetBytes(randBytes);
    return randBytes;
}

我可以发布<1MB的图像,但是当我获得> 1MB时,我得到了错误。这项服务已经运作了一年多。那时该服务没有任何更改。

我的开发PC和本地TFS构建服务器均发生错误。我无法确定这是我们(使用网络/防火墙)还是Azure遇到的问题。我尝试在HTTP客户端上使用不同的超时,并在app.config中设置内容/请求大小的值。

这些值都没有影响。

<system.web>
    <httpRuntime maxRequestLength="2097151" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2147483647" />
      </requestFiltering>
    </security>
  </system.webServer>

在Fiddler中查看请求时,出现 HTTP 504(网关超时)错误。

0 个答案:

没有答案