如何覆盖WCF中的ServiceHost?

时间:2010-10-18 12:45:58

标签: c# wcf

通信对象ExtendingWCFwithServiceHost.clsMyOwnHost已覆盖虚函数OnOpening,但它不调用基类中定义的版本。

我在覆盖ServiceHost类的OnOpening方法时遇到此错误。

1 个答案:

答案 0 :(得分:2)

错误消息解释了问题 - 您正在覆盖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   没有默认实现,   其他回调确实有默认值   实施是必要的   国家机器的正确性。如果你   覆盖那些方法一定要调用   基本实现还是正确的   替换它。