是什么可以阻止在Azure中的两个Web API应用之间建立连接?

时间:2018-08-29 00:58:23

标签: c# azure asp.net-web-api

我在Azure中有两个Web API应用程序(应用程序服务资源): app1 app2 。我正在尝试从 app1 向{em> app2 发送https请求,但是连接失败并出现以下错误:

  

”发送请求时发生错误。无法读取数据   从传输连接中:强制执行现有连接   由远程主机关闭”

当我在本地开发机上运行app1(例如从VS 2017运行)时,我可以毫无问题地连接到Azure中的app2。

我使用以下代码POST app1 app2 的请求:

using (HttpClient client = new HttpClient())
{
    HttpResponseMessage response = await client.PostAsync(uri, stringContent);
}

3 个答案:

答案 0 :(得分:0)

  1. StringContent是否巨大?
  2. 还是您正在使用的API进行了消耗资源的任何处理?
  3. 是否存在多个并发请求-例如您是异步调用API还是循环调用多个线程?

该错误表示连接成功,但是API出了点问题。根据我过去的经验,当API的主机内存不足而CPU占用过多时,我就遇到了这个问题。上面的某些项目可能会导致这种情况。

尝试使用空字符串参数调用API。

答案 1 :(得分:0)

我遇到了同样的情况(App Service A调用App Service B),最后发现了问题。

在App Service B的SSL设置中,我不得不将Minimum TLS Version降低到1.0。

当然最好让App Service A使用更高的TLS版本,但是我不确定如何设置它。

答案 2 :(得分:0)

事实证明您不能使用该服务的默认地址。它使用azuresites.net SSL证书,但我无法使用。一旦创建了自己的url和ssl证书,它就可以正常工作。