webservice를 호출하려고합니다. WPAD 스크립트를 사용하는 프록시를 사용해야합니다. 이 WPAD 스크립트의 URL은 응용 프로그램 배포마다 다릅니다. IE 올바른 proxysettings이 있지만 응용 프로그램이 윈도우 사용자를위한 IE-설정을 알고하지 않도록동적으로 WPAD 스크립트로 WebProxy 사용
, 응용 프로그램, 로컬 시스템 계정으로 실행하는 Windows 서비스로 실행됩니다.
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true" >
<proxy autoDetect="True" scriptLocation="http://url.to/wpad.dat"/>
</defaultProxy>
</system.net>
를하지만이는 사용자가 구성 할 수없는 제한이 다음의 app.config에 다음을 퍼팅
는작동합니다. 위의 코드를 (C# -) 코드에서 동적으로 수행하는 방법이 있습니까? 위의 내용이 프록시를 통과해서는 안되는 웹 서비스의 동작을 변경시킬 것이라고 생각됩니다. 나는 유용한 텍스트 발견 http://msdn.microsoft.com/en-us/library/system.net.webproxy.aspx에서
: "(. WPAD 기능을 사용하는 방법을 보여줍니다 예를 들어는 IWebProxyScript 클래스에 대한 설명서를 참조하십시오)"하지만 난 예를 :(발견하지 않았습니다
[link] (http://www.pcreview.co.uk/forums/winhttpgetproxyforurl-t1862181.html)하지만 WPAD는 여러 proxyservers를 반환 할 수 있습니다 (장애 조치 및/또는로드 균형 조정, 링크] (http://en.wikipedia.org/wiki/Proxy_auto-config)). 그런 다음 세미콜론으로 구분하여 반환합니다. "직접"을 반환하는 항목은이 방법을 사용하여 사라지는 것 같습니다. 비록 이것이 올바른 방향의 한 걸음이지만, 그것은 나에게 완전하지 않은 것처럼 보입니다. –
반환 값에 string.split을 사용하여 항목 목록을 얻은 다음 순서대로 시도해 볼 수는 없습니까? 목록이 비어 있으면 프록시를 사용하지 않을 것입니까? – sga101
그게 내가 끝내 준거야. 그러나 나는 그것을 좋아하지 않아 : 를 - 지금은 각 프록시에 대한 WebRequest 클래스를하고 루프를 가지고 내가 을 찾을 수 - 내가 직접 처리하는 방법을 모르겠어요. 나는 빈리스트를 얻는다면 이제는 프록시를 사용하지 않지만 프록시와 직접 리턴하는 예제를 보았 기 때문에 아마 올바른 방법은 아닙니다. - 웹 요청이 시간 초과되는 경우, 나는 그 이유를 알지 못합니다. 프록시 일 수도 있고 다른 일일 수도 있습니다. 그래서 다른 프록시로 요청을 반복합니다. 다른 타임 아웃일까요? 그리고 사용자는 기다립니다 ... - 정말 이것을하고 싶지 않습니다. 나는 OS가 그것을 처리하기를 원한다 ... –