2010-06-28 3 views
4

피들러를 통해 내 WCF 클라이언트 요청을 라우팅하는 동안 문제가 발생했습니다. WCF 서비스가 IPv4에서 수신 대기하도록 구성되었지만 IPv6이 사용 가능할 때 문제가있는 피들러에 대한 참조 만 발견했습니다. 그러나 내 문제는 비슷하지만 내 문제는 아닌 것 같습니다.EndpointNotFoundException '대상 컴퓨터가 적극적으로 거부했습니다.'피들러를 통해 연결

IPv4 포트에서 호스팅되는 서비스에 연결하는 중에 문제가 발생했습니다. 내 바인딩이 피들러 프록시를 사용하도록 구성된 경우 다음 예외가 내 WCF 클라이언트에 의해 발생합니다. Fiddler의 옵션에서 IPv6 지원을 사용하지 않도록 설정하고 바인딩을 제대로 사용하도록 프록시를 구성했는지 확인했습니다.

예외 보고서 :

System.ServiceModel.EndpointNotFoundException: Could not connect to http://campus.services.ecollege-labs.com/Entity/Foundation/v1.0/EducationalPartnerSvc . TCP error code 10061: No connection could be made because the target machine actively refused it 10.181.3.23:8888. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 10.181.3.23:8888 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- End of inner exception stack trace --- at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() --- End of inner exception stack trace ---

Server stack trace: at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at IMS.EnterpriseServices.Facades.Campus.EducationalPartner.EducationalPartnerSvc.FindByClientString(String clientString) at IMS.EnterpriseServices.Facades.Campus.EducationalPartner.EducationalPartnerSvcClient.FindByClientString(String clientString) in C:\P4\HEDI\AS2-dev-dotnext-campus-dev\AS\HEI\Src\CAS\IMS.EnterpriseServices.Facades.Campus\Service References\EducationalPartner\Reference.cs:line 428 at IMS.EnterpriseServices.Facades.Campus.CampusEntityFacade.GetEPID(String clientString) in C:\P4\HEDI\AS2-dev-dotnext-campus-dev\AS\HEI\Src\CAS\IMS.EnterpriseServices.Facades.Campus\CampusEntityFacade.cs:line 37 at IMS.EnterpriseServices.Transformation.Domain.TransformationSvc.TransformCreateGroupRequest(createGroupRequestMessage message) in C:\P4\HEDI\AS2-dev-dotnext-campus-dev\AS\HEI\Src\CAS\IMS.EnterpriseServices.Transformation.Domain\TransformationSvc.cs:line 106 at IMS.EnterpriseServices.Facades.IMSFacade.TransformCreateGroupRequest(createGroupRequestMessage imsMessage) in C:\P4\HEDI\AS2-dev-dotnext-campus-dev\AS\HEI\Src\CAS\IMS.EnterpriseServices.Facades\IMSFacade.cs:line 113 at IMS.EnterpriseServices.Domain.TransformationAndEnrichmentCoordinator.ProcessCreateGroupRequestMessage(createGroupRequestMessage message) in C:\P4\HEDI\AS2-dev-dotnext-campus-dev\AS\HEI\Src\CAS\IMS.EnterpriseServices.Domain\TransformationAndEnrichmentCoordinator.cs:line 140 at IMS.EnterpriseServices.Facades.IMSFacade.<>c__DisplayClass1.b__0(Object o) in C:\P4\HEDI\AS2-dev-dotnext-campus-dev\AS\HEI\Src\CAS\IMS.EnterpriseServices.Facades\IMSFacade.cs:line 135

바인딩 구성 : 존 소총과 파올로 의견에

<customBinding> 
    <!-- Secured, WS-Security message signing and encryption, custom binding for IMS endpoints --> 
    <binding name="customHttpSecuredNoWSA"> 
    <security 
     defaultAlgorithmSuite="Basic128Rsa15" 
     authenticationMode="MutualCertificate" 
     securityHeaderLayout="Lax" 
     includeTimestamp="false" 
     keyEntropyMode="CombinedEntropy" 
     messageProtectionOrder="SignBeforeEncrypt" 
     messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" 
     requireSignatureConfirmation="false" 
     requireSecurityContextCancellation="false" 
     allowSerializedSigningTokenOnReply="true"> 
     <localServiceSettings detectReplays="false" /> 
    </security> 
    <textMessageEncoding 
     messageVersion="Soap11" 
     writeEncoding="utf-8"> 
     <readerQuotas 
     maxArrayLength="1048576" 
     maxStringContentLength="4194304" 
     maxBytesPerRead="4194304" 
     maxNameTableCharCount="4194304" 
     /> 
    </textMessageEncoding> 
    <httpTransport 
     maxBufferPoolSize="4194304" 
     maxBufferSize="1048576" 
     maxReceivedMessageSize="1048576" 
     proxyAddress="http://my.host.name:8888" 
     useDefaultWebProxy="false" 
    /> 
    </binding> 
</customBinding> 
+0

어쩌면 어쩌면 질문하지 않을 지 모르지만 * 피 들러를 지나가는거야? –

+0

성공하면 'telnet 10.181.3.23 8888' 할 수 있습니까? 직접 구성하여 서비스에 연결할 수 있습니까? – Paolo

+0

@ 존 Skeet : 필라델피아를 통과하지 않으면 의사 소통이 잘됩니다. 또한 초기 요청을 보내고 여러 모의 서비스를 호스팅하는 SoapUI가 피 들러를 통해 정상적으로 통신한다는 점도 유의해야합니다. – jrista

답변

3

덕분에, 나는이 문제를 해결할 수 있었다. 뭔가 (아마도 방화벽)가 내 호스트 이름/ip에 대한 연결을 방해하고있는 것으로 보입니다.

proxyAddress="http://127.0.0.1.:8888"

참고 127.0.0.1 루프백 주소의 끝에 추가 기간 : WCF 구성에서 다음과 같이 127.0.0.1의 작품을 사용하여, 그러나 그것은 지정해야합니다. 이 기간이 없으면 WCF는 로컬 루프백에서 프록시 서버를 사용하지 못하도록 일부 종류의 하드 코드 검사를 수행합니다. (마이크로 소프트가 프록시 서버 사용에서 로컬 루프백을 하드 코딩하여 제외시켜야하는 이유는 저 밖에 있습니다.하지만 적어도이 트릭은 작동합니다.)

+0

이 오류가 발생했습니다 : System.Net.WebException : 원격 이름을 확인할 수 없습니다 : '127.0.0.1'. – FaizanRabbani

관련 문제