2011-01-24 73 views
4

我正在寫一個自定義的WCF綁定,我只想在處理消息時出現問題時才運行一些代碼。我的想法是添加一個自定義的IOperationInvoker,並使用try/catch來處理消息。我找不到在綁定中添加自定義行爲的方法。我想避免爲任何想要使用此綁定的服務聲明BOTH綁定和行爲。我可以從我的自定義綁定中添加自定義的WCF行爲嗎?

我正在運行的模型是Net.Msmq綁定,您可以在其中聲明通過綁定進行的重試處理。這基本上是我想要複製的,但是通過我自己的綁定。

任何WCF的大師在那裏?

回答

1

我認爲這是不可能的。綁定不能添加行爲。您可以檢查默認的WCF綁定 - 例如WebHttpBinding總是與WebHttpBehaviorWebScriptEnablingBehavior一起使用,但WebHttpBinding無法添加它們,您必須手動添加它們。爲了解決這個不便,WCF提供WebServiceHost類,可以用來代替普通的ServiceHost。 WebServiceHost爲REST服務進行所有必需的配置 - 它添加了WebHttpBehavior並使用WebHttpBinding進行了開發。你可以使用相同的方法。

但我認爲這不是一個好方法。重試處理已經由ReliableSession處理,並作爲通道實現,因此您應該嘗試相同的方式。在這種情況下,你不需要處理行爲問題。

相關問題