2012-01-23 3 views
0

안녕하세요, 이미지를 반환하는 다른 처리기 파일에서 처리기 파일을 요청하고 있습니다. HttpWebRequest에 응답을 얻기 위해 더 많은 시간을 들여야 할 때 ... 여기 내 코드가 도움이됩니다.HttpWebRequest가 매우 느립니다.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
HttpCookie cookie = context.Request.Cookies["ASP.NET_SessionID"]; 
         Cookie myCookie = new Cookie(cookie.Name, cookie.Value); 
         myCookie.Domain = url.Host; 

         request.CookieContainer = new CookieContainer(); 
         request.CookieContainer.Add(myCookie); 
         request.Timeout = 200000; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
responseStream = response.GetResponseStream(); 
+0

방화벽을 사용하고 있습니까? – Lucifer

+0

무엇보다 시간이 더 많습니까? – svick

+0

내가 첫 번째 시간을 요청할 때 응답을 얻기 위해 연결하는 데 2 ​​~ 3 분 정도 더 시간이 걸리는 이유는 무엇입니까 ??? –

답변

0

먼저 가능한 빨리 처리 요청을 처리해야합니다. 그렇지 않은 경우 네트워크에 문제가 있습니다. 로그 또는 디버깅 또는 필요한 모든 방법으로이를 진단 할 수 있습니다. Fiddler를 사용하여 요청을 다시 발행하여 해고 시점을 정확하게 알 수 있습니다.

서버에 연결하는 데 너무 많은 시간이 걸리면 메시지를 작성하고 응답 스트림을 플러시하고 닫아야합니다. 또한 아마도 responseStream 객체를 처리하는 것이 가장 좋습니다.

using(var responseStream = response.GetResponseStream()){ 
    // write to the sucker 

    responseStream.Flush(); 
    responseStream.Close(); 
} 

NB이 첫 번째 요청에있는 경우는 정확히 응용 프로그램 도메인의 시작에서 무슨 일이 일어나고 있는지 해결하려고 (당신의 질문/답변은 조금 복잡하다). global.asax에 큰 것이 있습니까? 아니면 DB 작업을 많이하고 있습니까?

+0

in global.asax는 DB 연결 만하고 있습니다 –

+0

배포 환경과 개발 환경 모두에서 오랜 시간이 걸립니까? –

+0

매우 빠르게 작동하지만 아무 것도 내 요청이 가능한 한 빨리 처리기에 도착하지 않는다는 것입니다. HttpWebRequest는 다른 처리기에서 생성 된 이미지를 얻기 위해 즉 2에서 3 분 정도의 응답을 가져오고 있습니다. ?? 도와주세요. –