WCF 서비스를 사용하는 C# 콘솔 응용 프로그램을 개발했습니다. 모두 로컬 컴퓨터에서 제대로 작동합니다. 설치 파일을 만들고 exe 및 exe.config 파일을 배포 할 때 아래 오류가있는 동일한 네트워크의 다른 컴퓨터에서 응용 프로그램 오류가 발생했습니다.동일한 네트워크에있는 다른 컴퓨터에서 WCF 서비스 오류가 발생했습니다.
통신 개체 인 System.ServiceModel.Channels.ServiceChannel은 오류 상태이므로 통신에 사용됩니다.
WCF 서비스 끝점 URL - http://inblrlwssc251.wdf.corp:7980/AfariaService/Server은 다른 컴퓨터에도 액세스 할 수 있습니다. 무엇이 잘못 될지 알지 못합니다.
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true"
logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
</diagnostics>
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_IServerService" />
</netNamedPipeBinding>
<netTcpBinding>
<binding name="NetTcpBinding_IServerService">
<security mode="Message" />
</binding>
</netTcpBinding>
<wsHttpBinding>
<binding name="WSHttpBinding_IServerService" />
</wsHttpBinding>
</bindings>
<!--
Modify the "adress" in each of the endpoint tags based on where the Afaria API service is hosted
-->
<client>
<endpoint address="http://inblrlwssc251:7980/AfariaService/Server"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServerService"
contract="AfariaServerService.IServerService" name="WSHttpBinding_IServerService">
</endpoint>
<endpoint address="net.tcp://inblrlwssc251:7982/AfariaService/Server"
binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IServerService"
contract="AfariaServerService.IServerService" name="NetTcpBinding_IServerService">
</endpoint>
<endpoint address="net.pipe://localhost/AfariaService/Server"
binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IServerService"
contract="AfariaServerService.IServerService" name="NetNamedPipeBinding_IServerService">
</endpoint>
</client>
</system.serviceModel>
어떤 도움 또는 올바른 방향으로 포인터가 매우 이해할 수있을 것이다 :
서비스에 대한 구성은 내가 바인딩 WSHTTP를 사용하여 아래와 같이 보인다.
언급 한 오류는 문제의 원인이 아닙니다. 문제는 그것이 잘못 된 국가에 어떻게 들어가는가하는 것입니다. 원래 예외를 포착하고 로깅하지 않고 말할 수는 없습니다. 나는 당신이 예외를 잡아낼 것이라고 생각하지만 여전히 다른 호출을 위해 클라이언트를 사용하려고 시도한다. (WCF 호출 중에 예외가 발생하면 클라이언트가 오류 상태가됩니다.이 클라이언트를 다시 사용하려고하면 더 이상 사용할 수 없다는 예외가 발생합니다.) – fejesjoco
@fejesjoco가 올바른 경로에 있습니다. 서비스에서 * 처리되지 않은 * 예외는 채널을 오류 상태로 만들고 오류 채널을 사용할 수 없으므로 새 채널을 다시 만들어야합니다. 서비스를 확인하십시오 - 로그가 있는지 살펴보고, 이벤트 뷰어에서 로그 된 내용을 확인하고 WCF 추적을 사용하면 근본 원인을 조사 할 수 있습니다. – Tim
감사합니다 fejesjoco 및 팀, 문제가 해결되었습니다. WCF 서비스에 액세스하는 데 필요한 자격 증명을 전달하지 않았습니다. – user2856028