1

Server 2012 に Service Bus for Windows Server をインストールしました。「Service Bus Explorer」管理 GUI を使用してキュー/トピックを管理しようとしています。

次の PowerShell コマンドによって生成されたエンドポイント接続を使用して、サービスの名前空間に接続しています。

Get-SBClientConfiguration -Namespaces 'MyNamespace' -Verbose;

生成するもの:

Endpoint=sb://MyMachine/MyNamespace;StsEndpoint=https://MyMachine:9355/MyNamespace;RuntimePort=9354;ManagementPort=9355

そして無事に接続できました。

問題:

Service Bus Explorer GUI でキューまたはトピックを作成しようとすると、ログ出力に次のエラーが表示されます。

Exception: Object reference not set to an instance of an object.

足りないものはありますか?見つけたすべての Service Bus 1.0 セットアップ ガイドを確認しましたが、インストールはすべて順調に進んでいるようです。

4

1 に答える 1

3

ツールの作者です。12 月に、同様の問題に遭遇しました。

Microsoft.ServiceBus.dll v.1.8 の Windows Azure Service Bus バージョンを GAC する場合:

  • Service Bus 1.0 for Windows Server の Service Bus Gateway および Service Bus Message Broker Windows サービスは正しく開始されますが、オンプレミスの dll ではなくクラウド dll が読み込まれます。
  • 同じマシンで実行されているすべてのクライアント アプリケーションが、クラウド バージョンの dll をロードします。
  • クライアント アプリケーションがローカルのオンプレミス SB 名前空間に接続すると、NamespaceManager と MessagingFactory が正しく作成されます。
    • namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
    • MessagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);
  • NamespaceManager オブジェクトは、エンティティ (キューなど) の作成と削除に使用できます。
  • 代わりに、アプリケーションが MessagingFactory から作成された MessageSender または MessageReceiver オブジェクトを使用してローカル キューとの間でメッセージを送受信しようとすると、操作は失敗し、例外 (エラー番号 50002) がアプリケーションによってキャッチされます。Windows Azure Service Bus Microsoft.ServiceBus.dll v.1.8 を GAC から削除し、Service Bus Gateway および Service Bus Message Broker Windows サービスを再起動すると、問題は解消されます。
  • クライアント アプリケーションは、クラウドとオンプレミスの両方の dll をリンクするローカル キューとの間でメッセージを送受信できます。簡単に言えば、クラウド バージョンの dll を GAC すると、Service Bus Gateway と Service Bus Message Broker Windows サービスが正しく開始され、メッセージング エンティティを作成できますが、アプリがメッセージを送受信しようとするとエラーが発生します。

質問:

  • Windows Azure バージョンの dll を GAC しましたか?
  • 使用している Service Bus Explorer のバージョンは何ですか (About フォームを参照)。
于 2013-02-22T17:18:09.367 に答える