2009-06-30 2 views
3

다소 혼란스러운 문제가 있습니다.이전 프록시 설정을 사용하는 웹 서비스?

웹 서비스 A -는 Win32 응용 프로그램에서 직접 호출, 및 기타 다양한 웹 애플리케이션
웹 서비스 B - 같은에서 Win32 응용 프로그램과 내가 추가에 대한 일하고 있어요 다른 웹 응용 프로그램

의 다른 세트에 의해 직접 호출 B를 A로 참조하면 B에서 제공하는 기능을 A에서 수동으로 다시 작성하거나 다시 통합하지 않고도 사용할 수 있습니다. 내가 사용하고있는 PC에서 A의 사본을 개발하고 B의 테스트 복사본 원격 서버 (테스트 서버는 호스팅 제공 업체의 인터넷을 통해 액세스)

테스트 준비가되었지만 로컬 복사본에서 테스트 해 보니 다음과 같은 오류가 발생합니다. 대상 컴퓨터가 적극적으로 10.1.X.XX을 거부했기 때문에

연결 없음

이 될 수있다 : 오류 메시지에 나열된 내부 IP는 우리의 오래된 BorderManager 게이트웨이했다

at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) 

8080. 더 이상 사용하지 않고 모든 Machine.Configs, Web.Configs, 레지스트리 항목을 검사했습니다. 여기에 나열된 IP에 대해 2MB 미만의 모든 파일에 대한 전체 텍스트 검색을 수행하는 경우에도 마찬가지입니다. 인터넷 옵션 연결 설정을 두 번 확인했지만 그룹 정책 회사가 관리합니다. 네트워크 담당자에게 IP가 현재 적용된 정책의 어느 곳에도 나열되어 있지 않은지 확인하도록 요청했습니다.

코드를 사용하는 단계를 건너 뛰고 위의 예외를 얻는 것을 제외하고 어디에서도 찾을 수 없습니다.

내가 웹 서비스 B를 사용하는이 코드는 다음과 같습니다

Dim oZip As New ZipTerr.ZIPTerr 
oZip.Url = "https://test.test.com/ZIPTerr/ZIPTerr.asmx" ' This really shouldn't be hardcoded... 
oZip.PreAuthenticate = True 
oZip.Credentials = New System.Net.NetworkCredential("username", "password") 
aCity = oZip.GetCities(pstrZip, Date.Now()) 

그것은 위의 오류와 oZip.GetCities() 호출에 실패합니다. 오류 메시지에있는 IP는 어떤 식 으로든 우리의 로컬 네트워크에서 나오지 않았다는 것을 나타내지는 않습니다. 테스트 서버가 공개적으로 액세스 할 수있는 유효한 IP를 가지고있는 반면 * 사설 IP입니다.

어떤 아이디어 ??

업데이트 : 모두 웹 서비스 코드 서비스로 실행되기 때문에 기본이되는 System.Net 라이브러리이 경우 인터넷 설정 값을 사용하지 않을 .NET 2.0

+0

에게 도움이됩니다. BorderManager 게이트웨이가있을 때 어떻게 작동하는지 어떻게 알아내는 것이 좋습니다. 어쩌면 그것의 일부가 여전히 주위에 있습니다. BTW, "Win32"가 아닌 "WinForms"를 의미한다고 생각합니다. –

답변

4

에 있습니다.

MS는 프록시 설정이 .config 파일의 특정 설정이없는 경우 어떻게 생성되는지 자세히 설명합니다.

한 명령 행 사용 : - - :

ProxyCfg -d 

이 단지 등으로 사용할 수 있도록 설계되었다 WinHTTP에 구성 요소에서 사용되는 프록시 설정을 (제거하는 것이 여기에

시도 할 몇 가지 있습니다 .NET의 등장 이전의 코드에 의한 서버 설정).

ProxyCfg -u 

현재 사용자 인터넷 프록시 설정을 WinHTTP에서 사용하는 시스템 전체 설정으로 복사합니다.

는 더 좋은 프록시가 호출 응용 프로그램의 Web.config의에서 설정을 직접 구성 : -

<system.net> 
    <defaultProxy enabled="true"> 
    <!-- if above set to true configure below accordingly if false delete below--> 
    <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/> 
    </defaultProxy> 
</system.net> 
+0

Web.config에서 스 니펫을 사용하고 enabled = "false"로 설정하여 문제를 해결할 수있었습니다. 당신의 도움을 주셔서 감사합니다! –

+1

이 문제가 해결되었지만 일부 메모가 있습니다. ProxyCfg는 더 이상 사용되지 않으며 win7의 netsh winhttp로 대체되었습니다. http://technet.microsoft.com/en-us/library/cc731131%28WS.10%29.aspx# BKMK_3 - 프록시를 사용하기 위해 모든 것을 변경 한 피들러 (http logger)를 설치 한 후이 문제가 발생했습니다. 나는 controlPanel> 인터넷 옵션> 프록시를 제거하고 'LAN 설정 자동 감지'를 선택한 다음 'netsh winhttp import proxy source = ie'를 실행하여 트릭을 실행했습니다. – Despertar

0

최상의 추측 :

이 어느 오류가 컴퓨터에없는 코드에서오고있다. 웹 서비스 A와 B가 컴퓨터에서 실행되고 있습니까?

또는 dll 소스가 컴퓨터에없는 dll로 코딩되어 있습니다.

희망이이 URL은하기까지 .NET에 관한 한, noplace 다른있다

쉬라즈

관련 문제