반응형
원격 서버에서 오류를 반환했습니다. (407) 프록시 인증 필요
웹 서비스를 호출 할 때이 오류가 발생합니다.
"원격 서버에서 오류를 반환했습니다 : (407) 프록시 인증 필요".
일반적인 아이디어를 얻고 다음을 추가하여 코드가 작동하도록 할 수 있습니다.
myProxy.Credentials = NetworkCredential("user", "password", "domain");
또는 코드에서 DefaultCredentials를 사용합니다. 내 문제는 웹 서비스에 대한 호출이 이것이없이 프로덕션에서 작동한다는 것입니다.
Machine.config와 관련된 비 코드 솔루션이있는 것 같지만 그게 무엇입니까? 현재로서는 프로덕션 상자의 machine.config 파일에 액세스하여 어떻게 보이는지 확인할 수 없습니다. 다음과 같이 machine.config 업데이트를 시도했지만 여전히 407 오류가 발생합니다.
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<bypasslist>
<clear />
</bypasslist>
<proxy proxyaddress="myproxy:9000"
usesystemdefault="false"
bypassonlocal="true"
autoDetect="False" />
</defaultProxy>
</system.net>
이것을 설정에 추가하십시오.
<system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>
다음 코드에서는 자격 증명을 하드 코딩 할 필요가 없습니다.
service.Proxy = WebRequest.DefaultWebProxy;
service.Credentials = System.Net.CredentialCache.DefaultCredentials; ;
service.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
방화벽 전문가에게 문의하십시오. PROD 서버에 대한 방화벽을 열어 프록시를 사용할 필요가 없습니다.
제 문제를 해결하는 데 도움이 된 팁에 감사드립니다.
407 오류를 통과하려면 두 위치에서 자격 증명을 설정해야했습니다.
HttpWebRequest webRequest = WebRequest.Create(uirTradeStream) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password", "domain");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
그리고 짜잔!
아마도 prod의 machine 또는 web.config는 구성에 설정이 있습니다. 아마도 프록시 태그가 필요하지 않을 것입니다.
<system.net>
<defaultProxy useDefaultCredentials="true" >
<proxy usesystemdefault="False"
proxyaddress="http://<ProxyLocation>:<port>"
bypassonlocal="True"
autoDetect="False" />
</defaultProxy>
</system.net>
HttpWebRequest webRequest = WebRequest.Create(uirTradeStream) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password");
성공했습니다.
비슷한 프록시 관련 문제가 있습니다. 제 경우에는 다음을 추가하는 것으로 충분했습니다.
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");
반응형
'programing tip' 카테고리의 다른 글
vba를 사용하여 XML을 구문 분석하는 방법 (0) | 2020.11.04 |
---|---|
Xcode 5로 업데이트 한 후-ld : 아키텍처 armv7 또는 armv7s 링커 오류에 대한 기호를 찾을 수 없음 (0) | 2020.11.03 |
Objective-C에서 두 배열을 어떻게 결합합니까? (0) | 2020.11.03 |
실패 [INSTALL_FAILED_INVALID_APK] (0) | 2020.11.03 |
Sourcetree 원격 : 잘못된 사용자 이름 또는 암호 (0) | 2020.11.03 |