首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WCF可靠会话,在消息传输完成之前,会话已完全关闭

使用WCF可靠会话,在消息传输完成之前,会话已完全关闭
EN

Stack Overflow用户
提问于 2011-12-02 17:32:40
回答 3查看 2.1K关注 0票数 3

我有一个使用可靠会话的WCF服务。在我的测试中,我倾向于打开一个通道,调用一个方法,然后关闭通道。

我经常在Close()期间得到一个The session was closed before message transfer was complete.异常。

鉴于我的方法是同步的,消息传输应该已经完成。如果是可靠的会话导致了这个问题(因为它仍然在幕后做着一些事情),那么它肯定要负责阻塞我的Close()调用,或者放弃而不抛出异常?

如何避免此异常?

EN

回答 3

Stack Overflow用户

发布于 2011-12-02 17:51:01

您应该找到导致连接关闭的原因。使用WCF服务配置编辑器将诊断信息添加到服务器和客户端配置文件中。

重现错误并在查看器中打开日志。您可能会发现消息在服务器端太大了。

票数 1
EN

Stack Overflow用户

发布于 2012-01-01 08:31:41

我也有同样的问题,解决方案是在我的接口定义中更改操作契约,将调用的方法标记为IsOneWay=false,这是默认设置。

确保您没有将方法的操作合同更改为

代码语言:javascript
复制
[OperationContract(IsOneWay=true)]
票数 1
EN

Stack Overflow用户

发布于 2011-12-02 20:17:25

您可能需要考虑的是,在调用Close()时指定一个超时值,以便有更多的时间正常关闭。这可以让你省去很多问题。(尽管我同意找到原因并试图阻止它也很重要)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8354279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档