目前,我在单个服务中有多个端点,它们调用相同的操作,但根据它们的优先级具有不同的节流配置。
<serviceBehaviors>
<behavior name="PriorityService1">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceThrottling maxConcurrentCalls="3" maxConcurrentSessions="3"
maxConcurrentInstances="3" />
</behavior>
<behavior name="PriorityService2">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceThrottling maxConcurrentCalls="5" maxConcurrentSessions="5"
maxConcurrentInstances="5" />
</behavior>
<behavior name="PriorityService3">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceThrottling maxConcurrentCalls="10" maxConcurrentSessions="10"
maxConcurrentInstances="10" />
</behavior>
</serviceBehaviors>
其中每一个都以完全相同的方式处理传入的 SOAP 请求(它只是根据优先级限制它们)。每个优先级都只是继承自BaseService
这样的类。
public class Priority1Service : BaseService { }
public class Priority2Service : BaseService { }
public class Priority3Service : BaseService { }
如您所见,Priority 类中没有实现,因为我只是使用继承的行为。有一个更好的方法吗?有没有办法我可以通过肥皂消息中的优先级并让服务根据它处理它?理想情况下,我希望能够摆脱这些只继承行为的类。