オンプレミスの WCF サービスを Azure でホストされている Web ロールに接続するために、 Azure Service Bus Relayを使用しています。オンプレミスの WCF サービスをアップグレードすると、サービス バス ホストがリレーを使用して自身を再確立した後、Azure Service Bus を介した最初のいくつかの要求から常に502 Bad Gateway応答が返されます ( "サービスは適切にホストされているため、指定されたアドレスでホストされているサービスはありません)。
所定のタイムアウト期間の後、エラーが消え、WCF 要求がリレーを介して適切に処理されるようです。HTTPキープアライブを無効にして使用basicHttpRelayBinding
しています(防止するため)。CommunicationExceptions
Web ロールからリレーへの WCF 要求中に取得したエラー メッセージを次に示します。
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 バインディングで既定の Web プロキシを無効にしようとしています(経由useDefaultWebProxy=false
) が、Azure Service Bus で同じ HTTP 502 の動作を他の人が見たことがあるかどうか、およびそれを修正する方法があるかどうか疑問に思っています。