Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何利用Castle Windsor WCF设施限制服务?_C#_Wcf_Castle Windsor - Fatal编程技术网

C# 如何利用Castle Windsor WCF设施限制服务?

C# 如何利用Castle Windsor WCF设施限制服务?,c#,wcf,castle-windsor,C#,Wcf,Castle Windsor,在WCF的开箱即用中,通过app.config或In-code(使用行为配置)可以轻松地限制您的服务。我不知道我们在城堡里怎么做 在Castle中,我知道如何使用以下代码限制容器中的所有服务: var throttle=newservicetrottlingbehavior(){MaxConcurrentCalls=2} container.Register(Component.For().Instance(throttle)) 此代码的问题在于它适用于容器中注册的所有服务 在Castle Wi

在WCF的开箱即用中,通过app.config或In-code(使用行为配置)可以轻松地限制您的服务。我不知道我们在城堡里怎么做

在Castle中,我知道如何使用以下代码限制容器中的所有服务:

var throttle=newservicetrottlingbehavior(){MaxConcurrentCalls=2}
container.Register(Component.For().Instance(throttle))

此代码的问题在于它适用于容器中注册的所有服务


在Castle Windsor中,我如何在单个基础上限制每个服务?

由于每次将此行为连接到服务时都会调用
ApplyDispatchBehavior()
方法,因此您可以在此事件中编写代码来检查服务对象并有条件地应用该行为。因此,它将为每个服务调用此方法,但不会为您不希望此行为应用于的服务执行任何操作


除此之外,我还没有找到另一种方法。

出于兴趣,为什么不能在web.config中执行此操作?我可以在app.config/web.config中执行此操作,因为我目前被迫这样做。当我旋转Castle容器时,我希望能够从DB加载所有服务设置、端点地址、限制设置等。稍后我将构建一个很好的管理员用户体验。除了节流设置,我可以用流利的语法做我需要的任何事情!我已经很接近了。谢谢,我会回头看看这篇报告。@thorphin如果你能发布你实现
IServiceBehavior
的代码,我可以用一个例子更新我的答案。