我正在開發一種利用msmq在兩臺機器之間傳輸數據的解決方案。由於所述機器的分離,我們需要使用HTTP傳輸來處理消息。HTTP錯誤:當通過http發送msmq消息時發生400問題
在我的測試環境中,我使用的是Windows 7 x64開發機器,它嘗試使用自制應用程序將消息發送到我控制的多個測試機器中的任何一臺。
所有機器都是安裝了msmq和msmq http支持的windows server 2003或server 2008。
任何測試目的,我可以使用下面的隊列路徑名成功:
FORMATNAME:DIRECT=TCP:[machine_name_or_ip]\private$\test_queue
但對於任何測試目的,下面總是失敗
FORMATNAME:DIRECT=$/test_queue
我用的所有排列機器名稱/ ips可用。我使用this blog post中描述的方法創建了映射。全部結果相同HTTP錯誤:400。
以下是用於發送消息的代碼:
MessageQueue mq = new MessageQueue(queuepath);
System.Messaging.Message msg = new System.Messaging.Message
{
Priority = MessagePriority.Normal,
Formatter = new XmlMessageFormatter(),
Label = "test"
};
msg.Body = txtMessageBody.Text;
msg.UseDeadLetterQueue = true;
msg.UseJournalQueue = true;
msg.AcknowledgeType = AcknowledgeTypes.FullReachQueue | AcknowledgeTypes.FullReceive;
msg.AdministrationQueue = new MessageQueue(@".\private$\Ack");
if (SendTransactional)
mq.Send(msg, MessageQueueTransactionType.Single);
else
mq.Send(msg);
其它信息:在IIS日誌上的目標機器我可以看到每個消息我送被記錄爲爲200的狀態碼POST
我願意接受任何建議。
我有完全相同的問題。你有沒有解決這個問題? – user808933 2011-06-21 17:26:58
對不起,我沒有。在我真正需要實施任何解決方案之前,該項目已被取消。然而,有人似乎提供了一個未經測試(由我)但下面可信的似乎答案。 – dontera 2011-07-26 23:05:16