WCF中端点行为的执行顺序是什么? 我希望只有在请求通过验证块时才会发生日志记录。 但就我而言,即使验证失败,审计拦截器也会记录请求。
我有两个行为延伸:
<behaviorExtensions>
<add name="validation"/>
<add name="Auditing"/>
</behaviorExtensions>
然后在我的行为中:
<behaviors>
<endpointBehaviors>
<validation ruleset"AuthenticationRuleSet"/>
<Auditing />
</endpointBehaviors>
</behaviors>
答案 0 :(得分:4)
来自MSDN
评估订单
System.ServiceModel.ChannelFactory和 System.ServiceModel.ServiceHost负责构建 编程模型和描述的运行时。行为,如 之前描述的,为服务的构建过程做出贡献, 终点,合同和运作。
ServiceHost按以下顺序应用行为:
服务
合同
端点
操作
在任何行为集合中,无法保证订单。
ChannelFactory按以下顺序应用行为:
合同
端点
操作
在任何行为集合中,无法保证订单。
出于验证目的,您可能应该查看Message Inspectors