通信對象ExtendingWCFwithServiceHost.clsMyOwnHost重寫了虛函數OnOpening,但它不調用基類中定義的版本。幫助覆蓋WCF中的ServiceHost
我在覆蓋ServiceHost類的OnOpening方法時出現此錯誤。
希望有任何幫助。
謝謝。
通信對象ExtendingWCFwithServiceHost.clsMyOwnHost重寫了虛函數OnOpening,但它不調用基類中定義的版本。幫助覆蓋WCF中的ServiceHost
我在覆蓋ServiceHost類的OnOpening方法時出現此錯誤。
希望有任何幫助。
謝謝。
錯誤消息說明了這個問題 - 您覆蓋了OnOpening
方法,但未調用基本實現。您的覆蓋應該是這樣的:
protected override OnOpening()
{
//additional processing
base.OnOpening();
}
This page解釋ICommunicationObject
狀態機,並說:
雖然 System.ServiceModel.Channels.CommunicationObject.OnOpen(System.TimeSpan), System.ServiceModel .Channels.CommunicationObject.OnClose(System.TimeSpan), 和 System.ServiceModel.Channels.CommunicationObject.OnAbort 沒有默認實現,其他回調確實有廣告默認 實現,這對於 狀態機的正確性是必需的。如果你用 覆蓋那些方法,一定要調用 的基本實現或者正確的 來代替它。
賓果!謝謝!! – Josh 2010-10-18 13:40:09
只需在您的方法中添加一個對'base.OnOpening(....)'的調用 - 或者我在這裏丟失了什麼?你能告訴我們你的代碼嗎? – 2010-10-18 12:57:47
是啊,那就是我曾經錯過的 – Josh 2010-10-18 13:40:42