2012-06-16 3 views
0

여기 내 코드는 내용의 길이를 얻기 위해 잘 작동하며 파일이 얼마나 큰지 알려주고 if 문에서 작동합니다. 어떤 이유로 if 문 다음에 MB가 5보다 작 으면 파일을 다운로드하지 않고 일반적으로 프로그램을 중지합니다. HTTP 요청 이후처럼 멈추는 것입니다. 그래서 내 코드가 잘못 됐는지, 아니면 뭔가 다른 것이 있는지, 바보 같은 질문 인 경우 사과하지 않습니다.HTTP 요청 후 C# 프로그램이 중지됩니다.

  byte[] test; 
      int size; 
      long MB = 0; 
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Path); 
      req.Method = "HEAD"; 
      HttpWebResponse resp = (HttpWebResponse)(req.GetResponse()); 
      long len = resp.ContentLength; 
      MB = len/1048576; 

      if (MB > 5) 
      { 
       Console.WriteLine("File to big!"); 
      } 
      else 
      { 
       var webClient = new WebClient(); 
       MemoryStream ms = new MemoryStream(); 
       byte[] imageBytes = webClient.DownloadData(Path); 
       test = imageBytes; 
       size = test.Length; 
      } 
+0

방화벽으로 인한 것일 수 있습니다. –

+0

프로세스를 중단하는 예외가 발생하면 프로그램을 중지 하시겠습니까? catch에서 콘솔 기록선을 사용하여 try catch에서 코드를 래핑 해보십시오. –

답변

1

다른 연결을 열기 전에 먼저 resp.Close();을 호출하면 도움이 될까요?

0

WebClient으로 계속하기 전에 HttpWebResponseDispose()으로 전화하십시오.

제대로 작동합니다.

관련 문제