Asp.net mvc 4 发布后ASP.NET MVC httpclient postasync超时

Asp.net mvc 4 发布后ASP.NET MVC httpclient postasync超时,asp.net-mvc-4,httpclient,Asp.net Mvc 4,Httpclient,我试图做一个httpclient postasync,当我在本地运行它时,它可以工作,但在我发布它之后就不行了 public async Task<OrderRecord> GetOrderRecord(CheckOutRecord checkOutRecord) { OrderRecord orderRecord = new OrderRecord(); using (var client =

我试图做一个httpclient postasync,当我在本地运行它时,它可以工作,但在我发布它之后就不行了

public async Task<OrderRecord> GetOrderRecord(CheckOutRecord checkOutRecord)
        {          

            OrderRecord orderRecord = new OrderRecord();

            using (var client = new HttpClient())
            {
                try
                {

                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.Timeout = TimeSpan.FromMilliseconds(100000);

                    HttpResponseMessage response = await client.PostAsJsonAsync("http://somewhere.com/Test/TestCheckout/", checkOutRecord);

                    if (response.IsSuccessStatusCode)
                    {                        
                        string result = await response.Content.ReadAsStringAsync();
                        orderRecord = JsonConvert.DeserializeObject<OrderRecord>(result);
                    }
                    else
                    {
                        logger.Info(response.RequestMessage);
                    }   
                }
                catch(HttpRequestException ex)
                {
                    logger.Error(ex);
                    logger.Error("GetORderRecord failed.  CheckOutRecord: " + checkOutRecord);

                    Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
                }

            }

            return orderRecord;
        }
公共异步任务GetOrderRecord(CheckOutRecord CheckOutRecord)
{          
OrderRecord OrderRecord=新的OrderRecord();
使用(var client=new HttpClient())
{
尝试
{
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
client.Timeout=TimeSpan.fromMiscells(100000);
HttpResponseMessage响应=等待客户端。PostAsJsonAsync(“http://somewhere.com/Test/TestCheckout/“,签出记录);
if(响应。IsSuccessStatusCode)
{                        
字符串结果=wait response.Content.ReadAsStringAsync();
orderRecord=JsonConvert.DeserializeObject(结果);
}
其他的
{
logger.Info(response.RequestMessage);
}   
}
捕获(HttpRequestException-ex)
{
记录器错误(ex);
logger.Error(“GetORderRecord失败。CheckOutRecord:+CheckOutRecord”);
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
}
}
退货订单记录;
}
以下是错误消息: System.Net.Http.HttpRequestException:发送请求时出错。--> System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机未能响应“服务器ip地址” 位于System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) 在System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败、套接字s4、套接字s6、套接字和套接字、IPAddress和address、ConnectSocketState状态、IAsyncResult asyncResult、异常和异常) ---内部异常堆栈跟踪的结束--- 位于System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult、TransportContext和context) 位于System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) ---内部异常堆栈跟踪的结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中 在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()中 在MotorcraftCheckoutService.WebApplication.Controllers.OrderController.d_u8.MoveNext()中


有什么想法吗?如果我在本地运行它并将它指向远程位置,它就会工作。如果我运行它并将它指向我的机器,它就会工作。发布到Web服务器后不工作。

无法连接到远程服务器-->System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应“服务器ip地址”,建立的连接失败在…
somewhere.com或Web服务器有防火墙吗?有,但应用程序正在调用自己/订单/GetData->/Test/ReturnData。这是一个最终将调用客户端web服务并检索数据的测试。
无法连接到远程服务器-->System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应…“服务器ip地址”
someone.com或Web服务器是否有防火墙?是的,但应用程序正在调用自身/订单/GetData->/Test/ReturnData。这是一个最终将调用我们的客户机web服务并检索数据的测试。