下面的代码是一个托管在IIS上的简单ASP.NET网站。当我从本地机器运行网站时,它适用于environmentName(UAT和SYSTEM)。但是当在IIS上托管时,我在为WEB环境调用WebApi时出错,而UAT工作正常。
string uri = string.Empty;
StringBuilder sbResult = new StringBuilder();
string message = string.Empty;
try
{
using (HttpClient client = new HttpClient())
{
if (environmentName.ToLower().Contains("system"))
uri = "http://172.26.25.53:5453/"; // SYS
else
uri = "http://172.26.129.21:5453/"; // UAT
client.BaseAddress = new Uri(uri);
var response = client.GetAsync("api/AppFabric").Result;
if (response.IsSuccessStatusCode)
{
}
}
}
当我为environmentName" UAT"运行此代码时,它运行正常。但是当环境名称是" SYSTEM"我得到如下例外
System.AggregateException:发生了一个或多个错误。 ---> System.Net.Http.HttpRequestException:发送时发生错误 请求。 ---> System.Net.WebException:无法连接到 远程服务器---> System.Net.Sockets.SocketException:一个连接 尝试失败,因为关联方没有正确回应 一段时间后,或建立连接失败,因为 连接主机无法响应172.26.25.53:5453 at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, 插座s4,插座s6,插座& socket,IPAddress&地址, ConnectSocketState状态,IAsyncResult asyncResult,Exception& 例外)
请帮助,我是WebApi的新手。我有什么遗失的吗?我以同样的方式在两个环境中托管了WebApi。
答案 0 :(得分:1)
我发现这是一个超时问题。 为了解决这个问题,我增加了IIS中的连接时间。 在IIS中,我转到默认网站,右键单击 - >管理网站 - >高级设置 - >连接限制(扩展) - >将默认值从120更改为(例如)180。