サーバー2008 x64で実行されているnet.msmqを使用するnet 3.5から移植された.net 4.0アプリケーションがあります
設定
- アドレスが「net.msmq://localhost/private/msmqdataservice.svc」の net.msmq サービス
- アドレス "net.msmq://localhost/private/msmqdataservice.svc" の net.msmq endpoing
- MSMQ のキュー -> name = "$private\msmqdataservice.svc"
現在、.net 3.5 を使用して、すべてが本番環境で動作しています。
サーバーに.net 4.0をインストールし、同じボックスにステージングするための新しいサイトを作成しました。
新しいステージング msmq セットアップは
- アドレスが "net.msmq://localhost/private/staging/msmqdataservice.svc" の net.msmq サービス
- アドレス "net.msmq://localhost/private/staging/msmqdataservice.svc" の net.msmq endpoing
- MSMQ のキュー -> name = "$private\staging/msmqdataservice.svc"
別のサイト用に別のキューを作成しました。
私が新しいサイトで行ったもう1つの変更は、これがiisの別のサイトであり、別のIPアドレスでリッスンしていることです。net.msmq を「localhost」にバインドしたままにしました。メイン サイトにも、net.msmq -> 'localhost' に対する同じバインディングがあります。そうあるべきだと思います。異なる構成が必要な場合は指摘してください。
問題は、リクエストがキューに入れられているが、アプリケーションによって取得されず、そこにとどまっていることです
ログに問題の兆候はありません。これに関連してログに表示されているのは、「msmqactivation がキューを検出できません」という警告だけです。この警告は正しく理解できませんでしたが、3.5 の msmq では常に問題なく表示されていたためです。
私が考えることができるものはすべて検証されており、正しいです。
- アプリケーションのアプリ プールはネットワーク サービスとして実行されており、キューに完全にアクセスできます。
- net.msmq アクティベーション サービスは、ネットワーク サービスで実行されています
- 同じ結果でサービスURLの異なる命名規則を試しました
概要
net.msmq を使用した複数のサイトのセットアップに関する洞察を提供してください。両方のサイトで値 = 'localhost' の net.msmq バインディングを使用しています。マシン名のアイデンティティだと思います。
この問題を診断する方法はありますか?
他に考えられることは何でも役立つかもしれません。
100 マンアワーを費やした後、問題が何であるかを理解できないため、昨日のリリースを延期する必要がありました。また、私の開発マシンでそれを壊すことはできません。
編集
問題は、新しいサイトの命名規則を作成した後に機能しないことでした
アドレス "net.msmq://localhost/private/staging/msmqdataservice.svc" を持つ net.msmq サービス net.msmq は、MSMQ のアドレス "net.msmq://localhost/private/staging/msmqdataservice.svc" キューでエンドポイン - > name = "$private\staging/msmqdataservice.svc"
サービス名 net.msmq://localhost/private/msmqdataservice.svc で動作しました
しかし、今ではまったく同じエンドポイントを使用する 2 つのサイトを持つことはできません。
同じマシンで異なるURLと異なるキューを持つ2つの異なるサイトで同じエンドポイントを持つ方法はありますか?