2010-08-24 52 views
0

我有一个在IIS托管的wcf服务。端点使用wsHttpBinding。wcf和不稳定的连接

我有很多正在使用该服务的客户端。
互联网连接不稳定。 客户端使用该服务在数据库中插入数据。

客户端异常处理的最佳做法是什么?
每次客户端需要插入数据(调用服务)时,使用使用状态和初始化新连接,还是应该在每次检测到没有连接时都保持打开的引用并重新初始化,是否很好?

我不喜欢客户端调用服务时向用户显示错误,告诉他们再次尝试重试。它可以自动重试吗?

问候

回答

1

先不使用与WCF代理或渠道打交道时使用。使用此approach关闭代理或通道。代理的使用取​​决于您的应用程序,您的要求和您当前的配置。

默认情况下,WsHttpBinding将消息安全性与Windows身份验证和建立安全上下文一起使用。这意味着在通信开始时,用户通过身份验证并创建安全上下文。安全上下文类似于安全会话,因此用户不必在来自同一代理的后续调用中进行身份验证。如果您计划为多个呼叫使用代理服务器,则安全上下文的使用只有价值,否则其开销较大。但是创建安全上下文也有副作用 - 单个服务实例处理来自该代理的所有调用。服务的生命周期由多次超时控制。最重要的是接收超时,默认值为10分钟。如果没有来自代理的请求在10分钟内到达,则实例被释放并且通道关闭,但代理不知道它。下一次你将使用代理它会触发异常。在请求处理服务期间,通道也被任何未处理的异常关闭。所以如果你想重用代理服务器,你必须处理检查信道状态的额外复杂性,并在出现问题时重新创建代理服务器。

+0

可能您错过了文本中的链接(“使用此[方法] [1]”)? – darpet 2010-08-25 06:26:38

+0

对不起,我已添加链接。 – 2010-08-25 07:22:38