我们正在使用Azure 服务总线中继将我们的本地 WCF 服务连接到我们的 Azure 托管的 Web 角色。当我们升级我们的本地 WCF 服务时,在服务总线主机与中继重新建立自身之后,我们总是从我们通过 Azure 服务总线的前几个请求中获得502 Bad Gateway响应(我们没有得到“没有服务托管在指定的地址。”因为服务托管正确)。
在给定的超时时间之后 - 似乎错误消失了,WCF 请求通过中继正确处理。我们在禁用 HTTP Keep-AlivesbasicHttpRelayBinding
的情况下使用(以防止)。CommunicationExceptions
这是我们在 WCF 请求从 Web 角色到中继期间捕获的错误消息:
System.ServiceModel.ProtocolException : 内容类型 application/soap+xml;响应消息的 charset=utf-8 与绑定的内容类型不匹配 (text/xml; charset=utf-8)。如果使用自定义编码器,请确保正确实现 IsContentTypeSupported 方法。响应的前 550 个字节是……
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://schemas.microsoft.com/netservices/2009/05/servicebus/relay/FaultAction</a:Action>
</s:Header>
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Receiver</s:Value>
<s:Subcode>
<s:Value>s:Receiver</s:Value>
</s:Subcode>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-US">50200: Bad Gateway.TrackingId:8bd21714-ae0f-41b5-b810-851b59a345fb_28,TimeStamp:5/29/2012 8:27:14 PM</s:Text>
</s:Reason>
</s:Fault>
</s:Body>
</s:Envelope>
我们目前正在尝试禁用 WCF 绑定( via )中的默认 Web 代理,但想知道其他人是否在 Azure 服务总线中看到了相同的 HTTP 502 行为以及如何修复它。useDefaultWebProxy=false