2016-03-23 84 views
0

私はこの問題について既に数日間立ち往生しています。私はwcfの基礎を知っています。既存のコードを管理してこの問題に遭遇しました。私は何の問題もなくクライアントにアプリケーションをホストしていました.WCFクライアントサイトはこのwcfサービスが非スターターであったことを除いてサービスと通信できました。SocketExceptionが発生しました既存の接続がリモートホストによって強制的に閉じられましたErrorCode = 10054

これはIISでホストされるwcfサービスです。私たちはCA発行の証明書を持っています。クライアントで証明書を確認できるので、mmcの信頼できる発行元の下で適切にインポートされていると考えられます。

wcfクライアントアプリケーションは、wcfオブジェクトをインスタンス化できます。しかし、 "true"(wcfobjectが到達可能であることを確認する)を返す単純な関数を呼び出すと、例外がスローされます。

 EndpointAddress myEndpointAdd = new EndpointAddress(new Uri(practiceUrl), 
              EndpointIdentity.CreateDnsIdentity(dnsIdentity)); 
     DataServiceClient wcfObject = new DataServiceClient("wsHttpEndPoint", myEndpointAdd); 

     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).MaxReceivedMessageSize = 2147483647; 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).ReaderQuotas.MaxArrayLength = 2147483647; 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).MaxBufferPoolSize = 2147483647; 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).OpenTimeout = TimeSpan.FromMinutes(10); 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).ReceiveTimeout = TimeSpan.FromMinutes(5); 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).SendTimeout = TimeSpan.FromMinutes(10); 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).ReaderQuotas.MaxBytesPerRead = 2147483647; 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).ReaderQuotas.MaxDepth = 2147483647; 
     ((WSHttpBinding)wcfObject.ChannelFactory.Endpoint.Binding).ReaderQuotas.MaxStringContentLength = 2147483647; 

     wcfObject.IsClientRunning(); //service should return true if all goes well 

クライアントは、私のマシンのIPにファイアウォールを開いているし、私のブラウザから私は、クライアントにインストールされたサービスのランディングページを見ることができています。

<bindings> 
    <wsHttpBinding> 
    <binding name="wsHttpBindingSettings" receiveTimeout="00:20:00" closeTimeout="00:20:00" openTimeout="00:20:00" sendTimeout="00:20:00" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="Message"> 
     <message clientCredentialType="Certificate" /> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 

サービストレースビューアもインストールしましたが、エラーは表示されません。 TraceLog

答えて

0

問題は、インターネット接続が遅いためで、証明書の認証中に最初のハンドシェイクプロセスでタイムアウトしたためです。

関連する問題