Задержка ASP.Net, как я могу определить, клиент это или сервер? - PullRequest
3 голосов
/ 18 мая 2011

У меня есть общий обработчик на сайте.Когда я иду прямо к нему, он немедленно отвечает.Когда я пытаюсь получить доступ к нему из программы .Net, перед тем, как сервер регистрирует запрос, происходит долгая (10 секунд отдача или взятие) пауза.

Вот код, который я использую для нажатия кнопкисервер:

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();

Я не думаю, что эта строка занимала так много времени около недели назад, но у меня нет данных, подтверждающих это.Есть идеи, в чем может быть проблема?Если я нажимаю на ссылку в браузере, он немедленно отвечает . Могу ли я использовать какие-либо инструменты, чтобы определить, является ли это моей машиной или сервером, или ... я даже не знаю, гденачать.

1 Ответ

1 голос
/ 23 мая 2011

Может быть, это просто из-за того, что GetRequestStream является синхронным методом и буферизирует его перед возвратом? Возможно, вам следует попытаться вызвать асинхронную версию и обработать данные по мере их поступления.

...