0

コンソール アプリケーションでポーリング二重バインディングを構成する際に問題が発生しています。これは私が受け取っているエラーです:

Configuration binding extension 'system.serviceModel/bindings/pollingDuplexHttpBinding' could not be found. Verify that this binding extension is properly registered in system.serviceModel/extensions/bindingExtensions and that it is spelled correctly.

また、ここに私のapp.configからのスニペットがあります:

    <extensions>
      <bindingExtensions>
        <add name="pollingDuplexHttpBinding" type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,
         System.ServiceModel.PollingDuplex,
         Version=4.0.0.0,
         Culture=neutral,
         PublicKeyToken=31bf3856ad364e35"/>
      </bindingExtensions>
    </extensions>

    <services>
      <service behaviorConfiguration="PositionBehaviour" name="RabbitMQSub.PositionUpdates">
        <endpoint address="positionsDUPLEX" binding="pollingDuplexHttpBinding" contract="RabbitMQSub.IPositionUpdates">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>

        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8732/RabbitMQSub/PositionsDUPLEX" />
          </baseAddresses>
        </host>

      </service>
    </services>

<behaviors>
  <serviceBehaviors>
    <behavior name="PositionBehaviour">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
      <serviceTimeouts transactionTimeout="10:00:00"/>
      <serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500" maxConcurrentInstances="2147483647"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

質問

  • コンソール アプリでポーリング二重化を構成することさえ可能ですか?
  • もしそうなら、私は何を間違っていますか?

ありがとう

4

1 に答える 1

0

私の知る限り、PollingDuplexHttpBinding は .NET Framework のクライアント側コンポーネントとして利用できません。

実際には、通知を発行するクライアントを持つために二重機能は必要ありません。BasicHttpBinding のような単純なバインディングで公開される個別の要求/応答 WCF サービス エンドとして構築できます。二重コントラクトで非同期通知を実際に受信する必要がある Windows アプリケーションまたはコンソール クライアントの場合は、二重通信を提供する WsDualHttpBinding または NetTcpBinding の使用を検討してください。

これは、.NET Framework の最新リリースでは変更されている可能性があります (変更されていない可能性があります)。可能であれば、System.ServiceModel.PollingDuplex.dll への参照を追加してみてください。

于 2012-04-26T15:39:07.373 に答える