2012-03-26 53 views
2

我正嘗試使用帶有MsmqIntegration綁定的WCF在MSMQ上發佈消息。發送作品,但是當我查看已發送到隊列的消息時。編碼不正確。更改MsmqIntegrationBinding的郵件編碼

是否可以將消息編碼更改爲UTF-16?我已經嘗試使用自定義綁定來解決此問題。這並沒有解決我的問題。我粘貼了我在下面使用的自定義綁定。

<binding name="CustomMsmqIntegrationBinding"> 
    <textMessageEncoding messageVersion="None" writeEncoding="utf-16" /> 
    <msmqIntegration exactlyOnce="true"> 
     <msmqTransportSecurity msmqAuthenticationMode="None" msmqProtectionLevel="None" /> 
    </msmqIntegration> 
</binding> 

回答

2

問題是,你是否有強迫你正確使用UTF-16的理由?

您是否在以下MSDN論壇中看到此鏈接:"How to make UTF-16 as default encoding for WCF Data Services."

作爲一種可能的解決方案它表明:

客戶端可以發送接收字符集:在請求和 服務器UTF-16頭將使用UTF-16進行響應。

而且接受的帖子裏說:

[...] UTF-8支持完全相同的一組字符 UTF-16。所以除非你有一個客戶端只能使用UTF-16和 而不是UTF-8,否則應該沒有理由使用UTF-16而不是UTF-8。事實上,相對於 ,UTF-16有效載荷幾乎是UTF-8的 的2倍。

+0

我遇到的問題是消耗隊列的應用程序不會接收消息。我認爲這是因爲消息的編碼。但問題可以放在別的地方。 由msmqIntegrationBinding發送的消息是一個二進制xml文件。消費應用程序可能只接受純文本。你知道是否可以將郵件作爲純文本發送到隊列? – Casper 2012-03-26 16:41:53

+0

@Casper:二進制綁定是默認的,所以想嘗試定製這樣的結合: ' ' 但我不是這方面的專家。 :( – 2012-03-26 16:52:30