チュートリアル: リモート サーバーへのサブスクリプション管理インターフェイスの配置
インターネット ベースの通知アプリケーションの場合は、通常、サブスクリプション管理インターフェイスを既存のインターネット インフォメーション サービス (IIS) Web サーバーに配置します。
このシナリオでは、ASP.NET ベースのサブスクリプション管理インターフェイスをリモートの IIS サーバー上に配置する方法を示します。このシナリオでは、サブスクリプション管理インターフェイスが Microsoft SQL Server へ接続するために使用するドメイン アカウントが必要です。このトピックでは、このログイン アカウントを作成して必要な権限を与える方法の手順について説明します。
前提条件
ASP.NET ベースのサブスクリプション管理インターフェイスを配置する前に、すべての前提条件が満たされていることを確認します。
- Microsoft Windows をインストールし、IIS コンポーネントを追加して、ASP.NET を有効にしていること。手順については Windows のマニュアルを参照してください。
- ドメイン管理者などによって、ASP.NET ベースのインターフェイスで使用するドメイン アカウントが作成済みであること。これは、リモート サーバー上のインターフェイスが Windows 認証を使用して SQL Server に接続するために必要です。このチュートリアルでは、ドメイン アカウントは、DOMAIN\WebApp と呼ばれます。
メモ : SQL Server 認証を使用できます。ただし、Microsoft では Windows 認証を推奨しています。 - IIS にアプリケーションを追加済みであるが、アプリケーション用のセキュリティをまだ構成していないこと。
- Notification Services のインスタンスを配置済みであり、それによってデータベース サーバーにインスタンス データベースとアプリケーション データベースが作成されていること。
- データベース エンジン で TCP/IP または名前付きパイプのネットワーク プロトコルが有効になっていること。SQL Server 2005 では、これらのネットワーク プロトコルが既定で無効になっています。詳細については、「SQL Server セキュリティ構成」を参照してください。
IIS サーバーでの作業
Web サーバーで次の手順を実行します。
手順 1: Notification Services のクライアント コンポーネントのインストール
Notification Services クライアント コンポーネントをインストールします。
コンポーネントのインストールの詳細については、「SQL Server Notification Services のインストール」を参照してください。
手順 2: インスタンスの登録
[スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server 2005]、[Notification Services] を順にポイントします。次に、[Notification Services コマンド プロンプト] をクリックして、Notification Services コマンド プロンプト ウィンドウを開きます。
以下のコマンドを入力します。インスタンスが登録されます。
nscontrol register -nameinstanceName-serverdatabaseServer
次の手順で使用するため、コマンド プロンプト ウィンドウは開いたままにしておきます。
手順 3: ASP.NET ベース アプリケーションのセキュリティの構成
Machine.config ファイルを開きます。このファイルは通常、%windir%\Microsoft.NET\Framework\vn.n.nnnn\CONFIG にあります。
processModel 要素を見つけます。この要素は、userName や password など、複数の属性を持っています。
userName の値として DOMAIN\WebApp を設定し、password の値としてこのアカウントのパスワードを設定します。processModel 要素の構造は次のようになっています。
<processModel ... userName="DOMAIN\WebApp" password="aspnet_password" ... />
Machine.config ファイルを保存します。
%windir%Microsoft.NET\Framework\vn.n.nnnn\Temporary ASP.NET Files フォルダに対する [フル コントロール] 権限を DOMAIN\WebApp アカウントに与えます。
フォルダへの権限を与える方法の詳細については、Windows のマニュアルを参照してください。
IIS を再起動します。変更内容が適用されます。
データベース サーバーでの作業
DOMAIN\WebApp アカウントに SQL Server とデータベースの権限を与える必要があります。SQL Server ワークステーション コンポーネントを、ホストされないイベント プロバイダを実行するサーバーにインストールしている場合は、そのサーバーで次の手順を実行できます。
SQL Server とデータベースの権限の付与
コマンド プロンプト ウィンドウを開きます。
次のコマンドを入力して、DOMAIN\WebApp アカウントの SQL Server ログインを作成します。
sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\WebApp] FROM WINDOWS;"
以下のコマンドを入力します。インスタンス データベースにアクセスするための権限が DOMAIN\WebApp アカウントに与えられ、このアカウントが NSSubscriberAdmin データベース ロールに追加されます。
sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;
** CREATE USER [DOMAIN\WebApp];**
** EXEC sp_addrolemember N'NSSubscriberAdmin', N'DOMAIN\WebApp';"**
アプリケーション用の別のデータベースがある場合は、以下のコマンドを入力します。アプリケーション データベースにアクセスするための権限が DOMAIN\WebApp アカウントに与えられ、このアカウントが NSSubscriberAdmin データベース ロールに追加されます。
sqlcmd -E -S databaseName -Q "USE applicationDatabase;
** CREATE USER [DOMAIN\WebApp];**
** EXEC sp_addrolemember N'NSSubscriberAdmin', N'DOMAIN\WebApp';"**
このインスタンスで複数のアプリケーションをホストする場合は、アプリケーション データベースの数だけこの手順を繰り返してください。
これで、Notification Services のインスタンスのサブスクライバとサブスクリプションを、サブスクリプション管理アプリケーションで管理できるようになります。
トラブルシューティング
サブスクライバとサブスクリプションを管理できない場合は、Notification Services コマンド プロンプトから以下のコマンドを実行してインスタンスの状態を確認します。
nscontrol status-name instanceName
サブスクライバとサブスクリプション管理が有効になっていることを確認します。詳細については、「インスタンス、アプリケーション、およびコンポーネントの状態表示」を参照してください。
また、Windows アプリケーション ログでエラーの有無を確認します。詳細については、「Notification Services のトラブルシューティング」を参照してください。
参照
概念
Notification Services のインスタンスの配置
ホストされないイベント プロバイダの配置