【问题标题】:What do I need to fix in web.config to get this MSDN sample to work?我需要在 web.config 中修复什么才能让这个 MSDN 示例正常工作?
【发布时间】:2011-03-23 20:25:25
【问题描述】:

在 Visual Studio 2010 中使用 .NET 4 和 Silverlight 4,我正在尝试按照 MSDN 指南为 Silverlight 客户端 (http://msdn.microsoft.com/en-us/library/cc645027(v=vs.96).aspx) 构建双工服务。

Web.config 给出警告:

警告 26 元素“绑定”具有无效的子元素 'pollingDuplexHttpBinding'。预期的可能元素列表: 'basicHttpBinding, customBinding, msmqIntegrationBinding, netPeerTcpBinding、netMsmqBinding、netNamedPipeBinding、netTcpBinding、 wsFederationHttpBinding, ws2007FederationHttpBinding, wsHttpBinding, ws2007HttpBinding、wsDualHttpBinding、netTcpContextBinding、 wsHttpContextBinding、basicHttpContextBinding、mexHttpBinding、 mexHttpsBinding, mexNamedPipeBinding, mexTcpBinding, webHttpBinding'。 C:\DuplexService\DuplexService\Web.config

我无法将服务引用添加到客户端。我无法在 WCF 测试客户端中加载服务。我在很多地方寻找答案。我不明白问题出在哪里。

web.config 当前如下所示:

<!-- Register the binding extension from the SDK. -->
<extensions>
  <bindingExtensions>
    <add name=
        "pollingDuplexHttpBinding"
        type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,System.ServiceModel.PollingDuplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </bindingExtensions>
</extensions>

<bindings>
  <!-- Create the polling duplex binding. -->
  <pollingDuplexHttpBinding>
    <binding name="multipleMessagesPerPollPollingDuplexHttpBinding"
             duplexMode="MultipleMessagesPerPoll"
             maxOutputDelay="00:00:07"/>
  </pollingDuplexHttpBinding>
</bindings>

<services>
  <service name="DuplexService.OrderService"
     behaviorConfiguration="DuplexService.OrderServiceBehavior">

    <!-- Service Endpoints -->
    <endpoint
       address=""
       binding="pollingDuplexHttpBinding"
       bindingConfiguration="multipleMessagesPerPollPollingDuplexHttpBinding"
       contract="DuplexService.IDuplexService">
    </endpoint>
    <endpoint
        address="mex"
        binding="mexHttpBinding"
        contract="IMetadataExchange"/>
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

【问题讨论】:

    标签: silverlight-4.0 wcf pollingduplexhttpbinding


    【解决方案1】:

    我也有这个问题。通过添加解决此问题

    C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0\Libraries\Server\System.ServiceModel.PollingDuplex.dll
    

    到 WebRole 项目的引用。

    【讨论】:

      【解决方案2】:

      使用这个配置...它对我有用。

      <system.serviceModel>
      <extensions>
        <bindingElementExtensions>
          <add name="pollingDuplex"
               type="System.ServiceModel.Configuration.PollingDuplexElement, 
               System.ServiceModel.PollingDuplex" />
        </bindingElementExtensions>
      </extensions>
      <bindings>
        <customBinding>
          <binding name="pollingDuplexBinding">
            <binaryMessageEncoding />
            <pollingDuplex maxPendingSessions="2147483647"   
                           maxPendingMessagesPerSession="2147483647" 
                           />
            <httpTransport />
          </binding>
        </customBinding>
      </bindings>
      
      <behaviors>
        <serviceBehaviors>
          <behavior name="sb">
            <serviceMetadata httpGetEnabled="true"/>
            <serviceDebug includeExceptionDetailInFaults="false"/>
            <serviceThrottling maxConcurrentSessions="2147483647"/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <services>
        <service name="DataServices" behaviorConfiguration="sb" >
          <endpoint address="" 
                    binding="customBinding" 
                    bindingConfiguration="pollingDuplexBinding"
                    contract="DataServices.IDataService"/>
          <endpoint address="mex" 
                    binding="mexHttpBinding" 
                    contract="IMetadataExchange"/>
        </service>
      </services>
      

      【讨论】:

        猜你喜欢
        • 2017-12-22
        • 2017-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        • 2012-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多