4

rabbitMQ のサブスクライバーとして機能する asp.net Web API を実装する必要があります。Windows サービスは、Web API サービスにメッセージを発行しようとしています。実稼働環境で実行されている Web API の複数のインスタンスが存在します。Web API でサブスクライバー チャネルを開き、IIS が再起動するまで開いたままにしておく方法がわかりません。1 つのパブリッシャーと複数のコンシューマーが存在します。

最初にサンプルコードを教えてください。

どんな助けでも大歓迎です

4

1 に答える 1

8

通常、RabbitMQ サブスクリプションは、IIS でホストされているアプリケーションではうまく機能しません。アプリケーションの実行時間を制御できないためです。IIS は、必要に応じてアプリをリサイクル、停止、および開始します。

これを行う必要がある場合は、RabbitMQ への接続を開き、アプリケーションの起動時にサブスクライブを開始します (たとえば、Global.asax.cs で)。アプリケーションを閉じるときに、すべてを適切に破棄するようにしてください。

サブスクリプション用の Windows サービスを構築し、IIS がホストする Web サービスがアクセスできる共有ストアに書き込むか、代わりに Windows サービス内で API を自己ホストする方がはるかに優れています。

于 2014-08-29T15:38:49.023 に答える