gpt4 book ai didi

wcf - Azure服务总线中继偶尔发生FaultException

转载 作者:行者123 更新时间:2023-12-02 00:00:13 24 4
gpt4 key购买 nike

我们无法确定为什么 Azure BasicHttpRelay 偶尔会抛出 FaultException,但没有任何详细信息。我们已启用 WCF 诊断跟踪,但可用的堆栈跟踪信息仍然相同。 WCF 客户端 channel 似乎会出现短暂故障,然后很快就会恢复。

我们确实缓存了 WCF channel (例如 CreateChannel),但这是我们第一次遇到这种奇怪的行为。我们还有其他 Azure 服务总线中继解决方案,可以很好地使用这种方法。

错误消息:

There was an error encountered while processing the request.

堆栈跟踪:

   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)   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 [our WCF method]...

FaultException - FaultCode Details:

Name: ServerErrorFault
Namespace: http://schemas.microsoft.com/netservices/2009/05/servicebus/relay
IsPredefinedFault: false
IsReceiverFault: false
IsSenderFault: false

Soap Message

<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 报告故障) 。在客户端 channel 看似 self 纠正后,后续的中继请求将成功。这些故障似乎是间歇性的,而不是负载驱动的。我们在 Azure 中继之外使用 basicHttpBinding 时从未见过这些 FaultException 错误。

有人有什么建议吗?我们使用Azure SDK 1.8

我尝试使用owner共享 key 配置新的服务总线中继命名空间,但仍然看到相同的结果。

最佳答案

联系微软后 - 这个问题被证明是微软 Relay 或 SDK 的错误,特别是在使用 Http Connectivity Mode 时。 。此时,唯一的解决方法是确保您拥有 appropriate outgoing TCP ports opened up确保与 Azure 中继的可靠连接。

允许 Outgoing TCP Ports :9350 - 9354

MS 告诉我们,他们仍在努力解决根本原因。希望这个解决方法能够帮助其他人。我们的公司防火墙阻止了这些 TCP 端口,这迫使所有通信都通过端口 80 进行,这必然会触发此问题。积极的一面是,打开这些端口可以在启动监听器时更快地连接到中继( AutoDetect 不必每次都检查 TCP 端口可用性)。

关于wcf - Azure服务总线中继偶尔发生FaultException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816594/

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