从C#调用WebApi获取异常HttpRequestException

时间:2015-07-06 06:56:05

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

下面的代码是一个托管在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。

1 个答案:

答案 0 :(得分:1)

我发现这是一个超时问题。 为了解决这个问题,我增加了IIS中的连接时间。 在IIS中,我转到默认网站,右键单击 - >管理网站 - >高级设置 - >连接限制(扩展) - >将默认值从120更改为(例如)180。