111,092
社区成员




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