问题描述
接口定义[ServiceContract(SessionMode=SessionMode.Required,CallbackContract=typeof(IDataSourceCallback))]publicinterfaceIDataSource:IClientRegisterServices{[OperationContract(IsOneWay=true)]voidIsOnLine();[OperationContract(IsOneWay=false)]voidIsOnLineNoOneWay();}
服务端代码publicvoidIsOnLine(){}publicvoidIsOnLineNoOneWay(){}
客户端代码publicclassDataSourceScDuplexClient:DuplexClientBase<IDataSource>{publicvoidIsOnLine(){if(Channel!=null)Channel.IsOnLine();}publicvoidIsOnLineNoOneWay(){if(Channel!=null)Channel.IsOnLineNoOneWay();}}
客户端调用DataSourceScDuplexClientclient=newDataSourceScDuplexClient();client.IsOnLine();//=>工作正常Console.WriteLine("DataSourceScDuplexClientIsOnLine");client.IsOnLineNoOneWay();//=>错误。等待约1分名钟后提示:请求操作在配置的超时(00:01:00)内未收到回复。分配给此操作的时间可能已经是更长超时的一部分。这可能由于服务仍在处理操作或服务无法发送回复消息。请考虑增加操作超时(将通道/代理转换为IContextChannel并设置OperationTimeout属性)并确保服务能够连接到客户端。Console.WriteLine("DataSourceScDuplexClientIsOnLineNoOneWay");