約 1 年前、私は NSB を立ち上げて、WorkerRole の Azure でうまく機能させることができました。いくつかのサービスを実装しました。いくつかの作業が必要で、依存関係とバージョンに関連するいくつかの問題がありましたが、多くの調整を行った後、問題を解決して実行することができました。
今日、新製品は、簡単な例を立証しようとしています。私たちが構築しているシステムのNSB v4.0を使用した調査段階での概念実証です。ここにある AzurePubSub の例を取り上げたいと思います。https://github.com/Particular/NServiceBus.Azure/tree/develop/IntegrationTests/AzurePubSub
サンプルを実行するだけでかなりの時間を費やしています。私が行った手順を文書化しました。
VS 2k12、NSB 4.0 (最新の安定版) を使用
- AzurePubSub プロジェクトを開く
- プロジェクトをターゲット Windows Azure Tools - v2.1 (変換済み) に変換するように求められます
- NSB ref を MyMessages から削除し、Nuget NServiceBus.Interfaces pkg に置き換えました
- MyMessages のクリーン ビルド
- OrderService、削除された NServiceBus、NServiceBus.Core、NServiceBus.Azure、NServiceBus.Hosting.Azure、Common.Logging
上記の OrderService は NuGet パッケージ (NServiceBus.Hosting.Azure) に置き換えられました。
OrderWebsite は NServiceBus、NServiceBus.Azure、NServiceBus.Core、Common.Logging を削除しました
上記の OrderWebsite は、NuGet パッケージ (NServiceBus.Azure) に置き換えられました。
クリーンなソリューション ビルドを達成しました。
デバッグ
ファイルまたはアセンブリ 'Microsoft.WindowsAzure.Diagnostics, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
OrderWebsite へのバインディング リダイレクトを手動で追加しました (オプションで、診断用に NuGet を参照できます)。
- デバッグ
ファイルまたはアセンブリ 'Microsoft.WindowsAzure.Diagnostics, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
OrderService へのバインディング リダイレクトを手動で追加しました (オプションで、診断用に NuGet を参照できます)。
デバッグ
ファイルまたはアセンブリ 'Microsoft.WindowsAzure.Diagnostics, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
- 削除された Microsoft.WindowsAzure.Diagnostics リファレンス 2.0.0.0
Microsoft.WindowsAzure.Diagnostics Reference to 2.1.0.0 (ファイル バージョン 2.1.6493.0) を OrderService と OrderWebsite の両方に追加しました (左バインド リダイレクト)。
OrderWebsite をデバッグすると、うまくロードされます。OrderService がループに陥る Azure Compute Emulator を介して見られる開始と停止。EndpointConfiguration ctor は呼び出されず、DefineRouting クラスの IProvideConfiguration 実装も呼び出されません。
Azure コンピューティング エミュレーターの出力:
親プロセス 5704 が終了すると、エージェントは終了します。[MonAgentHost] 出力: Monitoring Agent Started [Diagnostics]: Starting configuration channel polling [runtime] Role entrypoint . CALLING OnStart() [実行時] Role entrypoint . COMPLETED OnStart() [実行時] Role entrypoint . CALLING Run() [runtime] Role entrypoint . COMPLETED Run() ==> ROLE RECYCLING INITIATED [runtime] Role インスタンスのリサイクルを開始しています [runtime] Role entrypoint 。CALLING OnStop() [実行時] Role entrypoint . COMPLETED OnStop() [fabric] 役割の状態 ビジー ROLE RECYCLING INITIATED [runtime] Role インスタンスのリサイクルを開始しています [runtime] Role entrypoint 。CALLING OnStop() [実行時] Role entrypoint . COMPLETED OnStop() [fabric] 役割の状態 ビジー ROLE RECYCLING INITIATED [runtime] Role インスタンスのリサイクルを開始しています [runtime] Role entrypoint 。CALLING OnStop() [実行時] Role entrypoint . COMPLETED OnStop() [fabric] 役割の状態 ビジー
そして、これが何度もループする場所です。OrderService の Worker Role を使用して物事を初期化する際にエラーが発生していることは明らかですが、何が問題なのかを突き止めることはできません。
原因を特定する方法について何か考えがある人はいますか?
どうもありがとう、ライアン