WCF单一服务实现 - 多种行为

时间:2012-01-09 15:56:00

标签: wcf

我有一个IIS托管的WCF服务,我需要向两种客户端类型公开,外部(basicHttp legacy)和内部(wsHttp WCF)。对于外部客户端,我想强加一个更严格的限制配置。似乎限制配置如:

<serviceThrottling 
     maxConcurrentCalls="30" 
     maxConcurrentSessions="1000" 
     maxConcurrentInstances="30" />

只能作为服务行为应用,而不能作为端点行为应用。这意味着我需要创建两个单独的.svc文件,这些文件将解析为相同的.cs文件,如下所示:

<service behaviorConfiguration="x.xServiceBehavior">
     <endpoint 
          address="~/xService.svc" 
          binding="wsHttpBinding" 
          contract="xService.IxService"/>
</service>

<service behaviorConfiguration="xService.ThrottledxServiceBehavior">
     <endpoint 
          address="~/ThrottledxService.svc" 
          binding="basicHttpBinding" 
          contract="x.xService.IxService"/>
</service>

这是实现我所追求的目标的最佳途径还是有更好的方法?

由于

罗布。

1 个答案:

答案 0 :(得分:0)

您完成它的方式看起来是正确的,以实现两个不同绑定的不同服务行为配置。有可能实现相同的效果,同时避免使用两个.svc文件,但上面的方法可以正常工作,所以为什么摇摇欲坠! :)