2012-09-24 86 views
4

WCF中執行端點行爲的順序是什麼? 我希望僅當請求通過驗證塊時纔會發生日誌記錄。 但在我的情況下,即使驗證失敗,請求也會被審計攔截器記錄下來。在WCF中執行端點行爲的順序是什麼?

我有兩個行爲擴展:

<behaviorExtensions> 
<add name="validation"/> 
<add name="Auditing"/> 
</behaviorExtensions> 

,然後在我的行爲:

<behaviors> 
<endpointBehaviors> 
<validation ruleset"AuthenticationRuleSet"/> 
<Auditing /> 
</endpointBehaviors> 
</behaviors> 
+0

你知道的驗證和審覈的行爲是如何實現的?他們使用什麼WCF擴展點?換句話說,他們是ParameterInspector,OperationInvoker還是別的? – ErnieL

回答

4

從MSDN

計算順序

的System.ServiceModel.ChannelFactory和 System.ServiceModel.ServiceHost負責根據編程模型和描述構建運行時間 。行爲,如前面描述的 ,有助於該服務的構建過程,端點,合同和操作。

ServiceHost的應用在下列順序行爲:

服務

合同

端點

操作

在行爲的任何集合,沒有爲了保證

中的ChannelFactory適用於下列順序行爲:

合同

端點

操作

在行爲的任何集合,再次沒有爲了保證

爲了驗證目的,也許你應該看看Message Inspectors

相關問題