0
我們希望在我們的WCF 4.5服務使用gzip壓縮壓縮託管在ServiceBus WCF流量。 我們在ServiceBus上託管服務並使用NetTcpRelayBinding。如何使用NetTcpRelay結合
WCF 4.5應該支持gzip壓縮OOB。 我已經延長了標準NetTcpRelayBinding和gzip壓縮翻
public class CompressedNetTcpRelayBinding : NetTcpRelayBinding
{
public override BindingElementCollection CreateBindingElements()
{
var elements = base.CreateBindingElements();
var encodingBinding = elements.Single(e => e is BinaryMessageEncodingBindingElement);
((BinaryMessageEncodingBindingElement)encodingBinding).CompressionFormat = CompressionFormat.GZip;
var bindingElementCollection = new BindingElementCollection();
foreach (var bindingElement in elements)
{
bindingElementCollection.Add(bindingElement);
}
return bindingElementCollection.Clone();
}
}
然而,當我嘗試舉辦我得到以下異常服務:
上配置的運輸這種結合似乎並不支持消息編碼器上指定的CompressionFormat(GZip)。要解決此問題,請將BinaryMessageEncodingBindingElement上的CompressionFormat設置爲'None'或使用其他傳輸。
NetTcpRelayBinding使用默認Microsoft.ServiceBus.TcpRelayTransportBindingElement。
我該怎麼做才能做到這一點?
如果你看看代碼,你會看到這正是我試圖做的,但它似乎不NetTcpRelay工作捆綁。 – MrBob