我们无法确定为什么 Azure BasicHttpRelayFaultException
在没有任何详细信息的情况下偶尔会抛出异常。我们已启用 WCF 诊断跟踪,但可用的堆栈跟踪信息仍然相同。似乎 WCF 客户端通道在短时间内失败,然后很快返回。
我们确实缓存了 WCF 通道 ( egCreateChannel
),但这是我们第一次遇到这种奇怪的行为。我们有其他 Azure 服务总线中继解决方案可以很好地使用这种方法。
错误信息:
处理请求时遇到错误。
堆栈跟踪:
在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,ProxyOperationRuntime 操作,Object[] 输入,Object[] 输出,TimeSpan 超时) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime 操作) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息) 在 [0] 处重新抛出异常: 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型) 在 [我们的 WCF 方法] ...
FaultException - FaultCode 详细信息:
名称: ServerErrorFault
命名空间:http: //schemas.microsoft.com/netservices/2009/05/servicebus/relay
IsPredefinedFault:假
IsReceiverFault:假
IsSenderFault:假
肥皂消息
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header />
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/netservices/2009/05/servicebus/relay">a:ServerErrorFault</faultcode>
<faultstring xml:lang="en-US">There was an error encountered while processing the request.</faultstring>
<detail>
<ServerErrorFault xmlns="http://schemas.microsoft.com/netservices/2009/05/servicebus/relay" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" />
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
通过调试,我们可以看到服务器正确响应了消息请求(通过 IDispatchMessageInspector),但客户端未能正确处理响应(IClientMessageInspector 报告错误)。在客户端通道看似自我纠正后,后续中继请求将成功。这些故障似乎是间歇性的,而不是负载驱动的。我们从未在 Azure 中继之外看到这些FaultException
错误。basicHttpBinding
有没有人有什么建议?我们正在使用Azure SDK 1.8。
我尝试使用共享密钥配置新的服务总线中继命名空间owner
,但仍然看到相同的结果。