WCFデュプレクス通信外部ネットワークが接続できない
4696 ワード
プロジェクトはWCFを外部ネットワークに配置する必要があるため、会社でプログラムを完成し、テストは問題なく、wsDualHttpBinding二重通信
クライアント構成:
サーバ側の構成:
イントラネットテストに問題がなく、外部ネットに配置すると、タイムアウト異常operation may have been a portion of a longer timeoutを報告します.
サーバーとクライアントのファイアウォールが閉じているかどうかを確認し、ファイアウォールが閉じているかどうかを確認し、接続に失敗しています.
ポートが占有されているかどうかを確認し、ポートを交換します.エラーは依然として発生しています.
発見サービスのウェブページ上のメタデータアドレスはコンピュータ名を使用して、コンピュータ名は外網でアクセスできないので、検索して、ネット上で1篇の文章を発見します:http://www.cnblogs.com/lensso/archive/2011/08/01/2124095.html
リモートクライアントはメタデータアドレスホスト名がサーバコンピュータ名であるためWCFサービスメタデータを解析できない解決方法
文章メソッドをインストールしてメタデータのアドレス解析問題を解決した.
しかしクライアントは依然としてサービス側に接続できず、再び
http://www.cnblogs.com/bryant/archive/2011/09/22/2185621.html
http://social.msdn.microsoft.com/Forums/en-US/wcfzhchs/thread/0d663107-b47e-464b-82dc-6f191c484870
したがって、外部ネットワークの場合、プログラムが正常に動作することを確保する必要があります:1.クライアントはIIS 6以下のバージョンをインストールしていません.つまり、80ポートが空になります.2は1に違反する条件の下で、80ポートが占有され、clientBaseAddressがサーバに認識されるようにします.
そこでアドレスを設定して、クライアントは正常にサービス側に接続して、問題は解決します.
クライアント構成:
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="hhh_IBLLServiceContract" closeTimeout="00:01:00"
openTimeout="00:51:00" receiveTimeout="00:50:00" sendTimeout="00:51:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Mtom" textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxDepth="64" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:50:00" />
<security mode="None">
<message clientCredentialType="Windows" negotiateServiceCredential="true" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://192.168.9.29:8081/Service1.svc"
binding="wsDualHttpBinding" bindingConfiguration="hhh_IBLLServiceContract"
contract="IBLLServiceContract" name="hhh_IBLLServiceContract">
</endpoint>
</client>
</system.serviceModel>
サーバ側の構成:
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="hhh" messageEncoding="Mtom">
<security mode="None"/>
</binding>
</wsDualHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="serviceBehavior" name="RNOP.WCF.Service.BLLService">
<endpoint address="Service1.svc"
binding="wsDualHttpBinding" bindingName="hhh" bindingConfiguration="hhh" contract="RNOP.WCF.ServiceInterface.IBLLServiceInterface" >
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" >
</endpoint>
<host>
<baseAddresses>
<add baseAddress="http://192.168.9.180:8081/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors >
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="False" />
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
イントラネットテストに問題がなく、外部ネットに配置すると、タイムアウト異常operation may have been a portion of a longer timeoutを報告します.
サーバーとクライアントのファイアウォールが閉じているかどうかを確認し、ファイアウォールが閉じているかどうかを確認し、接続に失敗しています.
ポートが占有されているかどうかを確認し、ポートを交換します.エラーは依然として発生しています.
発見サービスのウェブページ上のメタデータアドレスはコンピュータ名を使用して、コンピュータ名は外網でアクセスできないので、検索して、ネット上で1篇の文章を発見します:http://www.cnblogs.com/lensso/archive/2011/08/01/2124095.html
リモートクライアントはメタデータアドレスホスト名がサーバコンピュータ名であるためWCFサービスメタデータを解析できない解決方法
文章メソッドをインストールしてメタデータのアドレス解析問題を解決した.
しかしクライアントは依然としてサービス側に接続できず、再び
http://www.cnblogs.com/bryant/archive/2011/09/22/2185621.html
http://social.msdn.microsoft.com/Forums/en-US/wcfzhchs/thread/0d663107-b47e-464b-82dc-6f191c484870
したがって、外部ネットワークの場合、プログラムが正常に動作することを確保する必要があります:1.クライアントはIIS 6以下のバージョンをインストールしていません.つまり、80ポートが空になります.2は1に違反する条件の下で、80ポートが占有され、clientBaseAddressがサーバに認識されるようにします.
そこでアドレスを設定して、クライアントは正常にサービス側に接続して、問題は解決します.