WCF服务多个行为

时间:2016-01-15 21:13:19

标签: .net wcf

我已经做了一些WCF,但已经有一段时间了,我从来没有必须从头开始配置服务。

显然,虽然您只能有一个行为配置,但可以将多个行为附加到WCF服务:

ServiceHost serviceHost = new ServiceHost(typeof(Services.FooService), ServiceEndpointUri);
WebHttpBinding binding = new WebHttpBinding();       
ServiceEndpoint sep = serviceHost.AddServiceEndpoint(typeof(Contracts.IFooService), binding, string.Empty);
sep.Behaviors.Add(new WebHttpBehavior());
sep.Behaviors.Add(new MyCustomEndpointBehavior());

我想知道:

  1. 是否可以将多种服务行为附加到服务? ...或者,就此而言,多个端点行为?或者你最多只限于其中一个?我不清楚这个片段(这是我在搜索中到目前为止最接近的答案)。
  2. 是否可以通过配置(而不是以编程方式)执行此操作?

1 个答案:

答案 0 :(得分:2)

您只需创建一个命名行为,然后将您的行为列为您指定行为的子项。

  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="MyExampleBehavior">
          <webHttp />
          <MyCustomEndpointBehavior />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service name="Example.Endpoints.MyEndpoint">
         <endpoint behaviorConfiguration="MyExampleBehavior" .../>
    </service>
  </services>

使用SvcConfigEditor.exe(应该以“服务配置编辑器”名称包含在您的visual studio中),它可以帮助您编辑和配置.config文件并轻松创建上面的复杂绑定。

enter image description here