System.ServiceModel.CommunicationObjectFaultedException

Posted

技术标签:

【中文标题】System.ServiceModel.CommunicationObjectFaultedException【英文标题】: 【发布时间】:2012-06-25 09:59:02 【问题描述】:

我在一台服务器上遇到以下问题,仅在另一台服务器上或在本地正常工作。

我用的是IIS6 Windows 2003,有设置相关的问题吗?

: 通信对象,System.ServiceModel.Channels.ServiceChannel, 不能用于通信,因为它处于故障状态。 服务器堆栈跟踪:在 System.ServiceModel.Channels.CommunicationObject.Close(时间跨度 超时)在 [0] 处重新抛出异常:在 System.Runtime.Remoting.Proxies.RealProxy。

【问题讨论】:

【参考方案1】:

您不能使用出现故障的通道。您需要重新创建一个新频道。

我的工具包对此具有内置支持,因此您可以无缝地再次调用该频道。它在内部处理这种情况。

见http://neovolve.codeplex.com/releases/view/53499。

【讨论】:

您应该做的一件事是检查您的操作中是否存在缺失的故障合同。你可以抛出一个错误,只要为操作定义了错误契约,它就不会导致通道出错。【参考方案2】:

首先,我们需要找出真正的问题或问题是什么。为此,请在服务 App.Config 文件中将 includeExceptionDetailInFaults 设置为 true,如下所示:

serviceDebug includeExceptionDetailInFaults="true"

那么当你捕捉到异常时,你就会得到真正的异常细节。我得到了 AccessDeniedException。所以我从 Power Shell 运行了这个命令: netsh http 添加 urlacl url=http://+:8080/user=Domainxxx\UserNamexxx。问题解决了。

【讨论】:

以上是关于System.ServiceModel.CommunicationObjectFaultedException的主要内容,如果未能解决你的问题,请参考以下文章