2012-05-30 2 views
0

배경 : 외부 웹 서비스 호출에 실패한 원격 사이트에 서비스가 설치되어 있습니다. 사이트의 네트워크 \ 지원 엔지니어에 따르면 프록시가 필요하지 않습니다,하지만해야 WebRequest 클래스는 예외가 반환됩니다 실행되지 할 때 :WebRequest.Proxy - 기본값은 무엇입니까

System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required. 

예외 비교적 단정하지만, 코드를 찾고, 아니 프록시 WebRequest에 대한 호출에 지정되어 있으며 app.config 파일에 프록시가 정의되어 있지 않습니다. WebRequest.Proxy에 대한 MSDN 설명서를 참조

".. IWebProxy 객체가 요청 프록시로 사용하는 기본 값이 GlobalProxySelection.Select 속성을 호출하여 설정"

가 GlobalProxySelection.Select에 대한 설명서를 참조

다음 ". 가져 오거나 글로벌 HTTP 프록시 설정"

GlobalProxySelection.Select가 응용 프로그램의 어느 위치에서 설정되지 않은 경우 기본값은 어디서 오는가? 그리고 글로벌 HTTP 프록시가 설정된 다른 글로벌 구성 파일이 있습니까?

답변

0

프록시를 수동으로 설정해야합니다. 기본 시스템 프록시를 사용하려면 다음을 수행하십시오.

myRequest.Proxy = WebRequest.GetSystemWebProxy();

네트워크 서버에 대한 액세스를 차단하기 때문에 오류를 얻고 직접 프록시를 사용하지 않고 (창에서 인터넷 설정). 이 동안

+0

그러나 요점은 프록시를 전혀 사용하고 싶지 않다는 것입니다. 하지만 그것은 어떤 이유로 프록시를 기본값으로하는 것으로 보이며 어디에서 또는 왜 프록시를 사용하려고하는지 찾을 수 없습니다. – mutex

+0

Windows 네트워킹 설정을 확인하거나 사무실 네트워크에 있다면 시스템 관리자에게 문의하십시오. 모든 인터넷 연결이 프록시를 통과합니까? – lahsrah

+0

시스템 관리자는이 특정 웹 서비스를 호출 할 때 프록시가 필요하지 않도록 규칙이 있다고 말합니다. 실제로 IE에서 프록시를 끄고 웹 서비스를 탐색하면 예상대로로드됩니다. C# 서비스에서는 코드에 프록시가 설정되지 않고 app.config에는 none이 설정되고 machine.config에는 none이 설정됩니다. 그래서 왜 프록시를 사용하려고하는지 혼란 스럽습니다. – mutex

0

내가 useDefaultCredentials="true"<system.net>에서 당신의 app.config /의 Web.config에서 <defaultProxy /> 요소를 시도하는 것이 좋습니다 수 있습니다, 직접 문제를 해결하지 않습니다 -이 잘 응용 프로그램 프록시를 통해 인증 취득 및 따라서를 필요로하지 않을 수 있습니다 특별 우회 규칙.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.net> 
    <defaultProxy useDefaultCredentials="true" /> 
    </system.net> 
</configuration> 
관련 문제