gpt4 book ai didi

windows - 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信,因为它处于 Faulted 状态

转载 作者:可可西里 更新时间:2023-11-01 14:13:52 28 4
gpt4 key购买 nike

The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.

当 Windows 应用程序尝试通过 wsDualHttpBinding 与作为 Windows 服务托管的 WCF 通信时,我收到此错误。 WCF 用于通过串行端口与设备通信。 Windows 应用程序过去经常通过 WCF 窗口服务发送命令。

这是堆栈跟踪:

stack trace: at System.ServiceModel.Channels.CommunicationObject.ThrowIfDisposedOrNotOpen() at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at GridSplitter.CommandServiceReference.ICommandService.SendToMultipleChannel(String[] channel, Int32[][] locid, String cmd, Int32 cmdData) at GridSplitter.CommandServiceReference.CommandServiceClient.SendToMultipleChannel(String[] channel, Int32[][] locid, String cmd, Int32 cmdData) at GridSplitter.MainWindow.bwChkAndSendRedeploy_DoWork(Object sender, DoWorkEventArgs e) : 11/9/2012 11:05:58 AM

  1. 我不明白为什么服务会进入故障状态。
  2. 我应该捕获此异常并执行一些修补工作(如果推荐的话)吗?
  3. TCP 绑定(bind)可以帮助我避免/消除此异常吗?

最佳答案

您的问题是在服务调用产生错误后,您的代码正在使用服务代理实例(服务引用,由 SvcUtil 生成或直接从 ChannelFactory 创建)。根据 WCF 的实现方式,一旦使用该代理的调用引发错误,您就不能“重新使用”该服务代理。

您需要根据 lines shown in this good post 编写适当的异常处理逻辑对于 WCF 特定要求。无论您配置代理使用的实际绑定(bind)如何,都需要完成此操作。

关于windows - 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信,因为它处于 Faulted 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377581/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com