エクスポート (0) 印刷
すべて展開

方法:Service Bus にアクセスするサービスを Azure でホストする

更新日: 2015年2月

Microsoft Azure で実行されるサービス アプリケーションの作成では、Azure および従来の Service Bus アプリケーションのプログラミング パターンに従います。ユーザーは、サービス コントラクトの定義と実装、エンドポイントの構成、資格情報の作成を行ってから、ホストを開始します。終了したら、ホストを停止します。ただし、Azure でサービスを作成するときは、2 つの固有の問題があります。

  • Azure は、Service Bus および アクセス制御 の構成情報を Machine.config ファイルに保存しない

    Azure は Azure SDK をインストールしないため、Azure コンピューター上の Machine.config ファイルには、Service Bus バインドまたはエンドポイントに関する情報がありません。前に説明したように、Azure のセキュリティ制限により、Azure の Machine.config ファイルを変更することができません。したがって、Service Bus および アクセス制御 の構成情報を Service Bus アプリケーションで使用できるようにするには、2 つのオプションがあります。

    1. 推奨のソリューションは、プログラムで Service Bus API を使用してアプリケーションを構成することです。たとえば、名前とパスワードの情報を App.config ファイルに保存できますが、プログラムでリレー バインド構成を設定します。プログラムによる構成の設定に関する詳細情報は、「Service Bus に登録する WCF サービスの構成」を参照してください。

    2. 2 番目のソリューションは、すべての関連情報を追加してアプリケーションの App.config ファイルを手動で変更することです。これを行うと、App.config ファイルを使用してバインドおよびエンドポイントを構成できます。そのためには、Azure SDK をインストールしたコンピューターで Machine.config ファイルを表示し、すべての Azure 関連の構成情報を見つけ、アプリケーションの App.config ファイルにコピーします。これにより、ホスト サービスで App.config ファイルを使用できますが、コードのテストが困難になります。ローカル テスト コンピューターの Machine.config ファイルに関して、既に Azure SDK がインストールされているという、重複の問題が発生する可能性があります。したがって、前のオプションを使用し、すべてをプログラムで設定することをお勧めします。

  • Service Bus Service Bus には、Azure で実行するためには完全信頼の承認が必要

    他のすべての Service Bus アプリケーションと同様に、オペレーティング システムが完全信頼の承認で実行されていることを確認する必要があります。これは、次の手順を使用して、Azure プロジェクトの ServiceDefinition.csdef ファイルで設定できます。

  1. ソリューション エクスプローラーWorkerRole または WebRole ノード (コードの場所によって異なります) で、Microsoft.ServiceBus.dll アセンブリを Azure プロジェクトに参照として追加します。

    この手順は、アセンブリに参照を追加するための標準的なプロセスです。

  2. Reference フォルダーで、Microsoft.ServiceBus を右クリックします。次に、[プロパティ] をクリックします。

  3. [プロパティ] ダイアログ ボックスで、[ローカルにコピー]True に設定します。

    これにより、Microsoft.ServiceBus.dll アセンブリがローカルの \bin パスにコピーされ、Azure で実行されているときはアプリケーションで使用できるようになります。

  1. プロジェクトの ServiceDefinition.csdef ファイルで、次のコードに示すように enableNativeCodeExecution フィールドを "true" に設定します。"ApplicationNameHere" をアプリケーションの名前に置き換えます。

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="ApplicationNameHere" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
      <WebRole name="WebRole" enableNativeCodeExecution="true">
        <InputEndpoints>
          <!-- Must use port 80 for http and port 443 for https when running in the cloud -->
          <InputEndpoint name="HttpIn" protocol="http" port="80" />
        </InputEndpoints>
      </WebRole>
      <WorkerRole name="WorkerRole" enableNativeCodeExecution="true">
      </WorkerRole>
    </ServiceDefinition>
    
    

表示:
© 2015 Microsoft