次の方法で共有


方法: IIS 上で実行する WCF Data Service を開発する

このトピックでは、WCF Data Services を使用して、Northwind サンプル データベースに基づいてデータ サービスを作成する方法を示します。このサンプル データベースは、インターネット インフォメーション サービス (IIS) 上で動作する ASP.NET Web アプリケーションによってホストされます。 同じ Northwind データ サービスを ASP.NET 開発サーバーで実行する ASP.NET Web アプリケーションとして作成する方法については、「WCF Data Services クイック スタート」を参照してください。

Dd728288.note(ja-jp,VS.100).gif注 :
Northwind データ サービスを作成するには、ローカル コンピューターに Northwind サンプル データベースをインストールしておく必要があります。このサンプル データベースをダウンロードするには、ダウンロード ページ「SQL Server 用サンプル データベース」を参照してください。

このトピックでは、Entity Framework プロバイダーを使用してデータ サービスを作成する方法を示します。 その他のデータ サービス プロバイダーを利用することもできます。 詳細については、「データ サービス プロバイダー (WCF Data Services)」を参照してください。

サービスを作成した後に、データ サービス リソースへのアクセスを明示的に提供する必要があります。 詳細については、「方法: データ サービスへのアクセスを有効にする (WCF Data Services)」を参照してください。

IIS 上で実行する ASP.NET Web アプリケーションを作成するには

  1. Visual Studio の [ファイル] メニューで、[新規作成][プロジェクト] の順に選択します。

  2. [新しいプロジェクト] ダイアログ ボックスで、プログラム言語として [Visual Basic] または [Visual C#] のいずれかを選択します。

  3. [テンプレート] ペインで、[ASP.NET Web アプリケーション] を選択します。 メモ : Visual Studio Web Developer を使用する場合は、新しい Web アプリケーションではなく、新しい Web サイトを作成する必要があります。

  4. プロジェクトの名前として「NorthwindService」を入力します。

  5. [OK] をクリックします。

  6. [プロジェクト] メニューで [NorthwindService のプロパティ] を選択します。

  7. [Web] タブで [ローカル IIS Web サーバーを使用する] を選択します。

  8. [仮想ディレクトリの作成][OK] の順にクリックします。

  9. コマンド プロンプトで次のコマンドを実行します。

    "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -i
    

    これにより、コンピューターに Windows Communication Foundation (WCF) が登録されます。

  10. SQL Server Management Studio または sqlcmd.exe ユーティリティを使用して、Northwind データベースがアタッチされた SQL Server インスタンスに対して次の Transact-SQL コマンドを実行します。

    CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS;
    GO 
    

    これにより、IIS の実行に使用される Windows アカウントに対して、SQL Server インスタンスのログインが作成されます。 IIS は、これを使用して SQL Server インスタンスに接続できるようになります。

  11. Northwind データベースをアタッチして、次の Transact-SQL コマンドを実行します。

    USE Northwind
    GO
    CREATE USER [NT AUTHORITY\NETWORK SERVICE] 
    FOR LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_SCHEMA=[dbo];
    GO
    ALTER LOGIN [NT AUTHORITY\NETWORK SERVICE] 
    WITH DEFAULT_DATABASE=[Northwind]; 
    GO
    EXEC sp_addrolemember 'db_datareader', 'NT AUTHORITY\NETWORK SERVICE'
    GO
    EXEC sp_addrolemember 'db_datawriter', 'NT AUTHORITY\NETWORK SERVICE'
    GO 
    

    これにより、新しいログインに権限が付与され、IIS は Northwind データベースに対してデータの読み取りおよび書き込みを行うことができるようになります。

データ モデルを定義するには

  1. ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで [ADO.NET エンティティ データ モデル] を選択します。

  3. データ モデルの名前として「Northwind.edmx」を入力します。

  4. エンティティ データ モデル ウィザードで、[データベースから生成] を選択し、[次へ] をクリックします。

  5. 次のいずれかの手順を実行し、データ モデルをデータベースに接続してから [次へ] をクリックします。

    • データベース接続がまだ構成されていない場合は、[新しい接続] をクリックして新しい接続を作成します。 詳細については、「方法: SQL Server データベースへの接続を作成する」を参照してください。 この SQL Server インスタンスには、Northwind サンプル データベースがアタッチされている必要があります。

      または

    • Northwind データベースに接続するようにデータベース接続が既に構成されている場合は、一覧からその接続を選択します。

  6. ウィザードの最終ページで、データベース内のすべてのテーブルのチェック ボックスをオンにし、ビューおよびストアド プロシージャのチェック ボックスをオフにします。

  7. [完了] をクリックして、ウィザードを終了します。

    Dd728288.note(ja-jp,VS.100).gif注 :
    この生成されたデータ モデルは、エンティティ型の外部キー プロパティを公開します。Visual Studio 2008 を使用して作成したデータ モデルには、これらの外部キー プロパティが含まれません。そのため、Visual Studio 2008 を使用して作成された Northwind データ サービスにアクセスしようとする前に、このバージョンの Northwind データ サービスにアクセスするために作成されたクライアント アプリケーションのクライアント データ サービス クラスを更新する必要があります。

データ サービスを作成するには

  1. ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで、[ADO.NET Data Service] を選択します。

  3. サービスの名前として「Northwind」を入力します。

    Visual Studio で新しいサービスの XML マークアップおよびコード ファイルが作成されます。 既定では、コード エディターのウィンドウが開きます。 ソリューション エクスプローラーでは、このサービスに Northwind という名前が付き、拡張子は .svc.cs または .svc.vb になります。

  4. データ サービスのコードで、データ サービスを定義するクラスの定義にあるコメント /* TODO: put your data source class name here */ をデータ モデルのエンティティ コンテナーである型 (この場合は NorthwindEntities) で置き換えます。 クラス定義は次のようになります。

    Public Class Northwind
        Inherits DataService(Of NorthwindEntities)
    
    public class Northwind : DataService<NorthwindEntities>
    

参照

概念

サービスとしてのデータの公開 (WCF Data Services)