Windows
無法讓 MSMQ 通過 HTTP 通過 FQDN 接收消息
上下文 - 帶有私有隊列的 Server 2008 R2,IIS 設置。通過 HTTP 從其他電腦發送消息。
$$ MSMQ is not in the ‘default web site’. I changed the ID of my website to 1 to install msmq (after previously un installing it) $$ 我可以做一些幫助。我已經通讀了所有“通過 http 的 msmq 消息只是沒有得到傳遞”並對此進行了很多研究,但就是無法使其正常工作。
如果我使用 IP 地址,我可以讓隊列接收消息,而不是如果我使用解析為相同 IP 地址的 FQDN。我需要域名才能工作,因為我的下一步是讓 SSL 工作,如果是完整的域名,顯然我的證書!
我有一個非常簡單的應用程序,它發送以下消息:
Private Function SendStuff() As String Dim output As String = "Mesages Sent To" & Environment.NewLine Dim Addresses As New List(Of String) Addresses.Add("Direct=HTTP://46.0.0.206/msmq/Private$/test.q") Addresses.Add("Direct=HTTPS://46.0.0.206/msmq/Private$/test.q") Addresses.Add("Direct=HTTP://subdomain.domain.net/msmq/Private$/test.q") Addresses.Add("Direct=HTTPS://subdomain.domain.net/msmq/Private$/test.q") For Each address In Addresses Dim fullAddress As String = "FormatName:" & address Dim mq As New System.Messaging.MessageQueue(fullAddress) Dim mm As New System.Messaging.Message() Dim body As String = "Hello via constructor " & fullAddress With mm .Body = body .AcknowledgeType = Messaging.AcknowledgeTypes.None .UseAuthentication = False .TimeToReachQueue = New TimeSpan(0, 20, 0) .Label = address.Substring(7, 14) End With mq.Send(mm) output = output & Environment.NewLine & fullAddress Next Return output End Function
在伺服器上,在 IIS 日誌中,我們得到了這樣的資訊:
2014-03-07 09:04:02 46.0.0.206 POST /msmq/private$/test.q - 80 - 83.0.0.130 - 200 0 0 31 2014-03-07 09:04:02 46.0.0.206 POST /msmq/private$/test.q - 443 - 83.0.0.130 - 200 0 0 46 2014-03-07 09:04:02 46.0.0.206 POST /msmq/private$/test.q - 80 - 83.0.0.130 - 200 0 0 78
我在 test.q 中收到 1 條消息,我期望 2 條(都來自 HTTP 協議,我還沒有期望的 httpS,但會很好:)
收到的消息:
<?xml version="1.0"?> <string>Hello via constructor FormatName:Direct=HTTP://46.0.0.206/msmq/Private$/test.q</string>
任何人都可以告訴我接下來要看什麼嗎,伺服器/接收電腦事件日誌中沒有任何有趣的東西,儘管我打開了“端到端”,但我在“應用程序和服務日誌\Microsoft\Windows\MSMQ”中什麼也沒得到’ 裡面有 0 條消息。
任何幫助表示讚賞。
謝謝
好的,所以解決方案很簡單。
似乎很清楚所有文件都是在 HTTP 選項之前製作的,因此僅缺少一個範例。
您需要為 MSMQ 添加從 FQDN.com 到 localhost 的重定向。
為此,您可以在以下位置添加一個 XML 文件:C:\Windows\System32\msmq\Mapping
具有以下內容:
<redirections xmlns="msmq-queue-redirections.xml"> <redirection> <from>http://FQDN.com/msmq/private$/test.q</from> <to>http://localhost/msmq/private$/test.q</to> </redirection> </redirections>
完畢