2010-08-11 4 views
1
public static string GetAccessErrorString(string uri) 
    { 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 

     try 
     { 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     } 
     catch (Exception e) 
     { 
      return e.Message; 
     } 

     return null; 
    } 

위의 코드에서 웹 사이트의 액세스 가능성을 확인하려고합니다. GetResponse 메서드가 호출 될 때 오류가 발생합니다. WebsiteReachable.cs에서IE에서 URL을 탐색 할 수 있지만 핑할 수 없음

WebStuff.WebsiteReachable.GetAccessErrorString에서 System.Net.HttpWebRequest.GetResponse() 에서

(문자열 URI, WebProxy가 프록시) : 라인 22

오류 : 원격 이름은 할 수 없었다 'www.microsoft.com'

호스트 파일에이 파일을 추가했지만 시도했지만 작동하지 않았습니다.

사실 IE에서 사이트를 탐색 할 수 있습니다. 핑 (ping)을 주면 메시지가 나타납니다.

* Ping 요청이 microsoft.com 호스트를 찾을 수 없습니다. 이름을 확인한 다음 을 다시 시도하십시오. *

문제를 파악하는 데 도움을 주시기 바랍니다 .. 다른 가능성을 지적 할 수 있다면 좋을 것입니다.

+0

전체 URI "http://www.microsoft.com"을 사용해 보셨습니까? 그리고 나는 MS가 그들의 서버에 ping을 막아서 관계없이 작동하지 않을 것이라고 생각한다. – Lazarus

+0

당신 말이 맞아요. microsoft.com에 ping을 시도했지만 응답을 얻지는 못했지만 로컬 컴퓨터에서 코드를 실행할 때 응답을 얻습니다. VM에서이 문제가 발생합니다. – Ramesh

답변

4

이 코드는 인증이 필요한 proxy server 뒤에 있으므로 코드가없는 경우이 프록시를 사용하도록 Internet Explorer가 구성되어있을 가능성이 큽니다.

1

Darin's answer에 추가하기 만하면됩니다. 프록시 서버가 문제가 될 경우 Proxy property을 사용하여 프록시 서버를 설정할 수 있습니다.

기본적으로 코드는 Internet Explorer의 프록시 설정을 사용해야합니다.

관련 문제