2009-11-13 3 views
0

간단한 WCF 지원 Windows 서비스와 통신하기 위해 WCF 클라이언트를 사용하는 간단한 ASP.NET 웹 응용 프로그램이 있습니다.WCF, 클라이언트가 동일한 컴퓨터에 연결되어 있지 않으면 연결할 수 없습니다.

모두 로컬 환경에서 정상적으로 작동합니다. 우리는 또한 잘 작동 dev에 배포했습니다. 그러나 DEV에서는 웹 서버와 응용 프로그램 서버가 같은 시스템에 있습니다.

QA에 배포 했으므로 '소켓 연결이 중단되었습니다. '예외적으로 던졌습니다. 몇 가지 이유로 QA 웹 서버는 WCF 클라이언트/서비스를 통해 QA 앱 서버와 통신 할 수 없습니다. 나는 웹 서버에서 품질 보증 응용 프로그램 서버를 Ping 할 수 것은 나는 웹 서버

에서 품질 보증 응용 프로그램 서버의 HTTP의 WSDL에 연결할 수있는 웹 서버 에서 품질 보증 응용 프로그램 서버를 텔넷 수 있으며, 내가 연결할 수 있습니다 내 로컬 환경/Visual Studio에서 내 QA 서비스에 FINE!

내 QA ASP.NET 응용 프로그램이 QA WCF Windows 서비스와 통신 할 수없는 이유는 무엇입니까?

:

여기
<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="BigFileBinding"> 
      <!-- required to receive files greater then default size of 16kb --> 
      <readerQuotas maxArrayLength="5242880"/> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <client> 
     <endpoint address="net.tcp://NJQACNET01:58887/PriceService" 
      binding="netTcpBinding" 
      contract="IPriceService" 
      bindingConfiguration="BigFileBinding"/> 
     </endpoint> 
    </client> 
    </system.serviceModel> 

는 서비스 내는 system.serviceModel 섹션이다 : 나는 시도하고 모든 방법이 가능하고, 여전히 이동 ... 여기

클라이언트 내는 system.serviceModel 섹션입니다
<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <!-- required to receive files greater then default size of 16kb --> 
     <binding name="BigFileBinding" 
       maxReceivedMessageSize="5242880"> 
      <readerQuotas maxArrayLength="5242880"/> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="MetaDataBehavior" name="RK.Pricing.PricingPortal.MarketableSecuritiesService.PriceService"> 
     <endpoint address="net.tcp://localhost:58887/PriceService" binding="netTcpBinding" 
      contract="RK.Pricing.PricingPortal.MarketableSecuritiesService.IPriceService" bindingConfiguration="BigFileBinding" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:58889/PriceService" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MetaDataBehavior"> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

도움을 주셔서 감사합니다. 크게 환영합니다 ...

답변

1

이것은 방화벽 문제 일 수 있습니다. 사용중인 포트가 ASP.Net QA 서버와 WCF QA 서버 사이에 차단되어 있습니다.

telnet 명령을 사용하여이를 테스트 할 수 있습니다.

+0

웹 서버에서 응용 프로그램 서버로 동일한 포트로 텔넷 연결할 수 있습니다 ... 또한 클라이언트 및 서버 모두에서 '보안 모드 = "없음"으로 설정하려고 시도했지만 모든 것이 작동합니다. ..하지만 비용은 얼마나됩니까? ..... – dferraro

+0

비용은 모든 클라이언트가 귀하의 서비스에 전화 할 수있는 것입니다. 보안을 끄는 것은 권장하지 않습니다. 내 대답에 링크 된 지침을 확인하십시오. –

+0

@dferraro, 보안 설정을 none으로 변경하기 전의 보안 설정은 무엇입니까? ASP.net 서버가 같은 도메인에 있습니까? ASP.Net 서버에서 WCF 서버로의 호출은 어떤 사용자 컨텍스트입니까? –

1

보안 문제 일 가능성이 높습니다. 기본적으로 NetTcpBinding은 Windows 인증을 사용합니다.

가능하면 게시 된 지침 인 here을 검토하고 따라야합니다.

관련 문제