WCF:具有两种行为的一项服务(behaviorConfiguration)

时间:2014-09-08 15:04:17

标签: wcf servicebehavior

我的服务有两种行为。一个用于限制,另一个用于元数据交换。如何在服务中启用两个?当我们首先启用时,Second会被禁用,反之亦然。

我的行为名称是MexBehaviour和ThrottlingBehaviour。服务适用于以下行之一,但不能同时适用于两者:

 <service behaviorConfiguration="ThrottlingBehaviour" 
                   name="ThrottlingService.ThrottlingService">

 <service behaviorConfiguration="MexBehaviour" 
                   name="ThrottlingService.ThrottlingService">

如何一次指定两者?

1 个答案:

答案 0 :(得分:1)

行为配置指定服务的行为。要组合行为,您可以使用这些组合创建行为,然后指向该行为

如果您正在使用WCF元数据和限制行为,要组合它们,您将创建一个像这样的新行为

<behaviors>
  <serviceBehaviors>
    <behavior name="metathrottle">
      <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
      <serviceThrottling maxConcurrentCalls="100"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

然后在您的服务点指向此配置

<service behaviorConfiguration="metathrottle" name="ThrottlingService.ThrottlingService">