2011-07-06 9 views
0

MSMQ経由でHTTPS経由でリモートサーバーにメッセージを送信する単純なC#アプリケーションがあります。 メッセージの配信に関連して肯定応答または否定応答を受け取れるように、メッセージのTimeToReachQueue値と管理キューを指定しました(AcknowledgeTypeとして "FullReachQueue"を指定しました)。 メッセージを送信してから約10秒後、ローカル管理キューに「メッセージがキューに到達しました」というメッセージが表示されます。しかし、TimeToReachQueueインターバルの終了後(30秒または5分)、「到達時間が経過しました」という2番目のメッセージが表示されます。 "TimeToReachQueue"インターバルを参照すると、指定された時間内にメッセージがキューに到達しなかった場合にのみ否定応答が返されます。MSMQ:メッセージ配信の肯定応答と否定応答の両方を受信する

リモートサーバーのキューを確認すると、メッセージは実際に宛先キューにあるため、受信したメッセージと到着しなかったメッセージをどのように受信できますか?

答えて

1

どのような種類のACKメッセージを含んでいる元の送信側マシンを指しているリモートサーバ上の発信キューはありますか。

+0

はい - メッセージを送信すると、リモートサーバーは2つの発信キューを作成します。 1つはhttp:// sendingserver/adminqueueであり、状態は "connected"ですが、メッセージは0です。もう1つはhttps:// sendingserver/adminqueue?SenderStream = LOTS_OF_STUFFで、1つの「QM Ordering ACK」メッセージがありますが、ステータスは「接続待ち」であり、非アクティブになります。 – user808933

+0

そこに行くよ。 MSMQは、内部およびユーザー指定の目的でacksを使用します。内部のacksは帰宅していないので、TTRQのタイムアウトが発生します。 2番目の発信キューは、管理アドレスのHTTPSバージョンを指しています。私は、送信サーバーにSSL証明書の設定がないと仮定して、失敗しています。以前はそれを見たことがありませんでしたが、SSLを介したMSMQの経験はほとんどありませんでした。 –

+0

送信側サーバーには、有効な信頼できる証明書があります。私たちの最高の推測は、それがNATの問題だということです。 – user808933

関連する問題