WCF 서비스에서 WebClient 사용

WebClient를 사용하여 다음과 같은 방법으로 일부 리소스를 다운로드하고 있습니다.

 Stream stream;
 try
 {
  WebClient webClient = new webClient();
  stream = webClient.OpenRead(MyResourceUri);
 }
 catch (Exception)
 {
  return null;
 }
 return stream;

WPF 응용 프로그램에서이 작업을 수행하면 제대로 작동하고 적절한 스트림을 얻습니다.

When I WCF 서비스 호출에서이 작업을 수행하면 작동하지 않습니다. WebException이 발생하고 "원격 서버에 연결할 수 없습니다." 메시지가 표시됩니다. (내 컴퓨터 또는 회사 네트워크 내에서 호스팅되는 파일에 대해서는 작동하지만 웹의 모든 리소스에 대해서는 실패합니다). 이 서비스는 IIS7에서 호스팅됩니다.

지금까지 조사한 결과 차이점은 웹 프록시 때문입니다. WPF 응용 프로그램의 webclient.proxy는 IE에 설정된대로 프록시 설정을 참조하지만 WCF에있는 것은 아무것도 가지고 있지 않습니다.

그 이유는 무엇입니까? 그리고 더 중요한 것은 WCF의 WebClient에서 유사한 프록시 설정을 사용하도록하려면 어떻게해야합니까?

편집 : WebClient에서 프록시를 설정하고 WCF 서비스에서 작동했습니다

webClient.Proxy = new WebProxy(ProxyAddressFromIE);

여기에서 프록시 주소를 하드 코딩했습니다. 이를 얻기 위해 어떤 방법 / API가 있습니까? WCF 서비스와 WPF 애플리케이션에서 왜 다른가요?

6
задан Nitesh 8 June 2011 в 04:40
поделиться