我正在寫一個自定義的WCF綁定,我只想在處理消息時出現問題時才運行一些代碼。我的想法是添加一個自定義的IOperationInvoker
,並使用try/catch來處理消息。我找不到在綁定中添加自定義行爲的方法。我想避免爲任何想要使用此綁定的服務聲明BOTH綁定和行爲。我可以從我的自定義綁定中添加自定義的WCF行爲嗎?
我正在運行的模型是Net.Msmq綁定,您可以在其中聲明通過綁定進行的重試處理。這基本上是我想要複製的,但是通過我自己的綁定。
任何WCF的大師在那裏?
我正在寫一個自定義的WCF綁定,我只想在處理消息時出現問題時才運行一些代碼。我的想法是添加一個自定義的IOperationInvoker
,並使用try/catch來處理消息。我找不到在綁定中添加自定義行爲的方法。我想避免爲任何想要使用此綁定的服務聲明BOTH綁定和行爲。我可以從我的自定義綁定中添加自定義的WCF行爲嗎?
我正在運行的模型是Net.Msmq綁定,您可以在其中聲明通過綁定進行的重試處理。這基本上是我想要複製的,但是通過我自己的綁定。
任何WCF的大師在那裏?
我認爲這是不可能的。綁定不能添加行爲。您可以檢查默認的WCF綁定 - 例如WebHttpBinding
總是與WebHttpBehavior
或WebScriptEnablingBehavior
一起使用,但WebHttpBinding無法添加它們,您必須手動添加它們。爲了解決這個不便,WCF提供WebServiceHost
類,可以用來代替普通的ServiceHost
。 WebServiceHost爲REST服務進行所有必需的配置 - 它添加了WebHttpBehavior並使用WebHttpBinding進行了開發。你可以使用相同的方法。
但我認爲這不是一個好方法。重試處理已經由ReliableSession處理,並作爲通道實現,因此您應該嘗試相同的方式。在這種情況下,你不需要處理行爲問題。