2010-06-28 3 views
1

"다시는이 문제가 아닙니다. 그래, 알아. 하지만 이건 다른 것 같아요.WCF 클라이언트 + Windows 서비스 + ISA = (407) 프록시 인증이 필요합니다.

시나리오 : 원격 WCF 서비스를 사용하는 Windows 서비스 (SYSTEM으로 실행)가 있습니다. 컴퓨터가 ISA 프록시 (도메인 없음, 프록시 사용자 이름/암호 없음) 뒤에 앉아 프록시를 내 app.config에 추가했습니다. 여기있다 :

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
    <proxy 
     bypassonlocal="False" 
     proxyaddress="http://myproxyserver:8080" 
     usesystemdefault="False" /> 
    </defaultProxy> 
</system.net> 

예외 :이 다른 이유

System.Net.WebException: 
    The remote server returned an error: (407) Proxy Authentication Required. 
    at System.Net.HttpWebRequest.GetResponse() 
    at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel. ... 
    HttpChannelRequest.WaitForReply(TimeSpan timeout) 

? 관리자로 실행되도록 서비스를 변경했으며 Windows 서비스가 WCF 서비스에 완벽하게 액세스 할 수있었습니다. 서비스가 "데스크톱과 상호 작용하도록 서비스 허용"옵션을 설정해야하는 기존 COM + 서비스를 실행하므로 SYSTEM 계정을 사용해야합니다. :

이 이상하다 또 다른 이유는 시스템이 내가 무엇을 시도했다 큰 아빠 전능하신 계정 (morehere)

될 예정이다 (이 옵션은 시스템 계정에만 사용할 수 있습니다) 나는 this, thisthis ... 및 thensome을 시도했습니다.

이것은 하나의 수수께끼입니다. 내 app.config이 (가) 관리자가 아닌 시스템에서 작동하는 이유는 무엇입니까?

도움 주셔서 감사합니다.

+0

업데이트 : "서비스가 데스크톱과 상호 작용하도록 허용"을 선택 취소하면 wcf 클라이언트가 다시 작동합니다. 흠 ... 나는 더 자세히 살펴볼 것입니다. "= usesystemdefault –

답변

0

발견. 그것이 계정과 관련이 없다는 것을 알았습니다. 타임 아웃 기간이 길어짐에 따라이 예외가 즉시 표시되는 것은 아니므로 사용중인 계정과 관련이 있다고 생각하게되었습니다.

문제는 생산 사이트에서 useDefaultCredentialsfalse으로 설정 되었기 때문입니다. 실패.

+0

는 그래서는 Web.config의에서 최종 설정이 <프록시 bypassonlocal ="거짓 " proxyaddress ="8080 : // myproxyserver HTTP "비교 무엇 이었습니까 False "/>

+0

더 이상 파일에 액세스 할 수 없지만 제대로 된 것 같습니다. –

관련 문제