2012-01-26 24 views
0

WCFサービスにWCFアプリケーションを接続しようとするときに問題が発生しました。 WCFのテストクライアントであるWCFのコンポーネントは、別途、私が作成したWinformsテストハーネス&で問題なく動作します。WCFサービス(クライアント)とWCFアプリケーション(サーバー)間の通信にサービス参照を使用する

私はWCFサービス(クライアント)内で、私のWCFアプリケーション(サーバー)で指し示されているサービス参照に呼び出しを行います。

EventCreationServiceReference.EventCreationServicePortClient _servicereference = 
         new EventCreationServiceReference.EventCreationServicePortClient(); 

今、私はテストハーネスが行うのと同じ方法で接続しています、これはと話してWCFサービスであるのに対し、私は考えることができる唯一の違いは、テストハーネスは、サービス参照でプレーンWinformsのアプリケーションでありますWCFインターフェイスを使用したWinformsアプリケーション。

エラーです。契約はので、私は明示的にサービス参照の契約を述べサービス参照を作成しようとしましたが、私は非常によく似たエラーを提示していなかった理由

Could not find endpoint element with name 'EventCreationApp.IEventCreationServicePort' 
and contract 'EventCreationAppServiceReference.IEventCreationServicePort' in the 
ServiceModel client configuration section. This might be because no configuration file 
was found for your application, or because no endpoint element matching this name could 
be found in the client element. 

は今、私は思っていました。

Uri uri = new Uri("net.tcp://172.26.2.11:8525/EventCreationApp"); 
EndpointAddress endpointAddress = new EndpointAddress(uri); 

EventCreationServiceReference.EventCreationServicePortClient _servicereference = 
new EventCreationAppServiceReference.EventCreationServicePortClient(
"EventCreationAppServiceReference.IEventCreationServicePort", endpointAddress); 

ここに、WCFアプリケーションのWCF設定があります。

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="EventCreationApp.IEventCreationServicePort" closeTimeout="00:01:00" 
      openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
      transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" 
      hostNameComparisonMode="StrongWildcard" listenBacklog="10" 
      maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10" 
      maxReceivedMessageSize="65536"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
       maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      <reliableSession ordered="true" inactivityTimeout="00:10:00" 
       enabled="false" /> 
      <security mode="Transport"> 
      <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> 
      <message clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="EventCreationApp.Service1Behavior" 
     name="EventCreationApp.EventCreationServicePort"> 
     <endpoint address="" binding="netTcpBinding" 
        bindingConfiguration="EventCreationApp.IEventCreationServicePort" 
      contract="EventCreationApp.IEventCreationServicePort" 
      name="EventCreationApp.IEventCreationServicePort"> 
      <identity> 
      <dns value="172.26.2.11" /> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" 
      contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://172.26.2.11:8525/EventCreationApp" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="EventCreationApp.Service1Behavior"> 
      <serviceMetadata httpGetEnabled="false" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

...と、アプリケーションに接続するためのWCFサービスクライアントサービス参照コード。

<system.serviceModel> 
     <bindings> 
      <netTcpBinding> 
       <binding name="EventCreationApp.IEventCreationServicePort" closeTimeout="00:01:00" 
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
        transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" 
        hostNameComparisonMode="StrongWildcard" listenBacklog="10" 
        maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10" 
        maxReceivedMessageSize="65536"> 
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
         maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
        <reliableSession ordered="true" inactivityTimeout="00:10:00" 
         enabled="false" /> 
        <security mode="Transport"> 
         <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> 
         <message clientCredentialType="Windows" /> 
        </security> 
       </binding> 
      </netTcpBinding> 
     </bindings> 
     <client> 
      <endpoint address="net.tcp://172.26.2.11:8525/EventCreationApp" 
       binding="netTcpBinding" bindingConfiguration="EventCreationApp.IEventCreationServicePort" 
       contract="EventCreationAppServiceReference.IEventCreationServicePort" 
       name="EventCreationApp.IEventCreationServicePort"> 
       <identity> 
        <dns value="172.26.2.11" /> 
       </identity> 
      </endpoint> 
     </client> 
    </system.serviceModel> 

ヘルプ、私は完全に困惑しています。

答えて

0

クライアントの設定に 'クライアント'のエンドポイントが含まれていてはなりませんか?

WCF Client Configuration

[編集]

あなたはWCFサービスは、WCFアプリケーションに話していると言っています。それは逆ではありませんか?

または、WCFサービスがクライアントであり、WCFアプリケーションがサービスであるとお考えですか?

+0

クライアント構成コードを表示するようにコードを拡張しました。 – wonea

+0

はい、WCFサービス(クライアント)がWCFアプリケーション(サーバー)と通信するようにしたいと言っています。基本的に私はWCFサービス/アプリケーションがメッセージを受信して​​送信できるようにするためにアーキテクチャーを作っています。 – wonea

+0

私が考えることができる他のことは、あなたの "wcfサービスクライアント"のbinフォルダ内の設定ファイルを確認することです – chandmk

関連する問題