2013-10-22 77 views
1

我有一個函數UpdateCRM(),它將向我的CRM服務器發出http web請求以更新數據。 如果它調用一次,它工作正常。但是當我們在一個循環內調用UpdateCRM()時,它在更新某個記錄之後會超時。 有沒有更好的解決問題。HttpWebRequest獲取超時問題

這是我的UpdateCRM()方法。

function UpdateCRM() 
{ 
HttpWebRequest httpWebRequest = null; 
//Convert object to JSON 
sJSON = oSerializer.Serialize(emailSendoutList); 

httpWebRequest = (HttpWebRequest)WebRequest.Create(ConfigUtility.crmUpdateServiceURL + "/UpdateCrmAfterEMailed"); 
httpWebRequest.ContentType = "text/json"; 
httpWebRequest.Method = "POST"; 
httpWebRequest.Timeout = 600000; 
httpWebRequest.ReadWriteTimeout = 600000; 
httpWebRequest.ContentLength = sJSON.Length; 

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
{ 
streamWriter.Write(sJSON); 
streamWriter.Flush(); 
streamWriter.Close(); 
} 

}

回答

1

您需要關閉使用後提出異議。

嘗試添加此後使用streamwriter。

httpWebRequest.abort(); 

編輯:

試試這個樣子,也許它響應導致的嗎?

HttpWebResponse Response = (HttpWebResponse)Request.GetResponse(); 
using (var streamWriter = new StreamWriter(Response.GetRequestStream())) 
{ 
streamWriter.Write(sJSON); 
streamWriter.Flush(); 
streamWriter.Close(); 
} 
Response.Close(); 
+0

我已添加代碼。 finally { httpWebRequest.Abort(); httpWebRequest = null; } –

+0

您是否嘗試過申明一個響應對象,稍後您可以在閱讀Streamwriter後關閉它? –

+0

是的,關閉後響應速度稍快。 –