我正在使用Windsor的WCF工具托管服务,但我无法通过ConcurrencyMode
设置ServiceBehaviorAttribute
和ServiceBehaviorAttribute
。我已经看到了两个显然应该起作用的选择(但是试图都无济于事):
IServiceBehavior
注册为Description
Behaviors
配置回调中的OnCreated
AddExtensions
集合。我尝试过的第三种方法是使用ServiceBehaviorAttribute
,但这会导致异常,因为行为列表中已经存在&
(默认情况下?)。方法2的情况也是如此,但在这种情况下,我可以将其删除并添加新的,或修改现有条目。
除了从服务中删除“删除ServiceBehaviorAttribute”的行之外,似乎没有任何相关文档,这显然是因为它可能与WcfFacility发生冲突,这真是令人沮丧。
有人能指出我如何正确地做到这一点?任何提示都表示赞赏!
答案 0 :(得分:0)
不幸的是我没有正确测试。修改ServiceBehaviorAttribute
操作中Behaviors
属性Description
列表中OnCreated
的属性实际上是按预期工作的。
样本注册:
container.Register(Component.For<IWCFWarehouseServiceAsyncCallback>()
.ImplementedBy<WarehouseService>()
.AsWcfService(new DefaultServiceModel()
.AddBaseAddresses(baseAddress)
.OnCreated(host =>
{
var sb = host.Description.Behaviors.Find<ServiceBehaviorAttribute>();
sb.UseSynchronizationContext = false;
sb.ConcurrencyMode = ConcurrencyMode.Reentrant;
})
.AddEndpoints(WcfEndpoint.BoundTo(binding).At("WarehouseService"))));