【发布时间】:2015-07-01 22:57:56
【问题描述】:
我正在想办法把这个物体推到哪里去:
ServiceThrottlingBehavior stb = new ServiceThrottlingBehavior
{
MaxConcurrentSessions = 100,
MaxConcurrentCalls = 100,
MaxConcurrentInstances = 100
};
我在 web.config 中找到了有关如何配置它的信息,但我对此有点困惑。我们曾经在我们的 web.config 中有一些看起来像这样的东西:
<service name="AuthenticationService.AuthenticationService" behaviorConfiguration="Development">
<endpoint address="http://services.local/0.0.0.5/AuthenticationService.svc"
binding="basicHttpBinding"
bindingConfiguration="TUPSOAPBinding"
contract="AuthenticationService.ServiceDomain.ISecurityService"
name="SOAPCatalogService" />
</service>
如果我们仍然使用它,我会确切地知道如何通过 web.config 配置节流,但我们发现我们可以将所有这些端点从 web.config 中取出,并且一切仍然正常,并且维护较少,因为我们不用再去更新不同版本和环境的地址了。
我还找到了有关如何在 ServiceHost 上以编程方式设置此项的信息,但我不是以编程方式创建 ServiceHost。我让 IIS 来处理。
那么有没有一种编程方式可以让我在没有 web.config 并且不必自己创建 ServiceHost 的情况下设置节流?
编辑:或者有没有办法让我在 web.config 中做到这一点,而不必为我们的每一项服务创建一个 <service /> 条目?
【问题讨论】:
-
您必须创建一个自定义
ServiceHost和一个自定义ServiceHostFactory,并告诉IIS 使用它而不是默认值。然后,您可以以编程方式将行为添加到您的自定义主机。如果有机会,我稍后会发布一个示例。 -
@Tim 谢谢,如果你有一个例子或者可以给我指出一个很好的例子!
-
我确实有一个例子,但我可能要到今晚晚些时候才能发布它(我在美国西海岸)。
-
@Tim 那太好了,谢谢!
标签: .net wcf iis servicebehavior