我在網站上有一個通用的處理程序。當我直接進入它時,它立即響應。當我嘗試從.Net程序中獲得它時,在服務器註冊請求之前會有一段很長的(10秒鐘的停頓)暫停。ASP.Net延遲,我該如何判斷它是客戶端還是服務器?
下面是我用打服務器的代碼:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://MYURL/fs.ashx");
request.Method = "POST";
request.ContentType = "text/xml";
// This is the line that takes 10 seconds to return
StreamWriter streamOut = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
streamOut.Write(sXMLToSend);
streamOut.Close();
XmlDocument doc = new XmlDocument();
HttpWebResponse resp = null;
resp = (HttpWebResponse)request.GetResponse();
StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
sResponse = responseReader.ReadToEnd();
Console.WriteLine(sResponse);
resp.Close();
我不認爲這條線之前採取的是長大約一個星期,但我沒有任何數據回來了。任何想法可能是什麼問題?如果我在瀏覽器中點擊了網址,它會立即回覆。是否有任何工具可以用來判斷它是我的機器還是服務器,或者......我甚至不知道從哪裏開始。
只是瘋狂的猜測,你用'http://'試過嗎?也許應用程序試圖獲取/驗證瀏覽器保持緩存的證書。 – SirViver 2011-05-18 18:19:21
嘗試做'var requestStream = request.GetRequestStream()'看看是否需要這麼長時間;如果是這樣,你可以縮小搜索範圍。 – 2011-05-18 18:19:38
@Bala R var requestStream ...引起相同的延遲。我確信我錯過了一些明顯的東西,但是這是如何縮小搜索範圍的?我知道它至少消除了創建StreamWriter所需的開銷,但除此之外......我知道我必須錯過一些東西。 – 2011-05-18 18:37:48