WCF Data Services の開発と配置

このトピックでは、WCF Data Services の開発と配置について説明します。 WCF Data Services の他の基本情報については、「WCF Data Services を使用した作業の開始」および「WCF Data Services の概要」を参照してください。

WCF Data Services の開発

WCF Data Services を使用して、Open Data Protocol (OData) をサポートするデータ サービスを作成する場合、開発時に次の基本的なタスクを実行する必要があります。

  1. データ モデルを定義する

    WCF Data Services は、リレーショナル データベースから遅延バインディング データ型に至るさまざまなデータ ソースのデータに基づいてデータ モデルを定義できるようにする各種のデータ サービス プロバイダーをサポートしています。 詳細については、「データ サービス プロバイダー (WCF Data Services)」を参照してください。

  2. データ サービスを作成する

    最も基本的なデータ サービスでは、DataService<T> クラスを継承するクラスを T 型 (エンティティ コンテナーの名前空間修飾名) と一緒に公開します。 詳細については、「データ サービス (WCF Data Services)」を参照してください。

  3. データ サービスを構成する

    既定では、WCF Data Services では、エンティティ コンテナーによって公開されているリソースへのアクセスは無効になります。 DataServiceConfiguration インターフェイスを使用すると、リソースとサービス操作へのアクセスの構成、サポートされる OData のバージョンの指定、およびサービス全体のその他の動作 (バッチ動作や 1 つの応答フィードで返すことができるエンティティの最大数など) を定義できます。 詳細については、「データ サービスの構成 (WCF Data Services)」を参照してください。

このトピックでは、主に、Visual Studio を使用したデータ サービスの開発と配置について説明します。 データを OData フィードとして公開できるようにする WCF Data Services の柔軟性については、「データ サービス (WCF Data Services)」を参照してください。

開発 Web サーバーの選択

Visual Studio を使用して WCF Data Services を ASP.NET アプリケーションまたは ASP.NET Web サイトとして開発する場合、開発時にデータ サービスを実行する Web サーバーを選択できます。 次の Web サーバーを Visual Studio と統合することにより、ローカル コンピューターでデータ サービスを簡単にテストおよびデバッグできるようになります。

  1. ローカル IIS サーバー

    インターネット インフォメーション サービス (IIS) で実行される ASP.NET アプリケーションまたは ASP.NET Web サイトとしてデータ サービスを作成する場合は、ローカル コンピューターで IIS を使用してデータ サービスを開発およびテストすることをお勧めします。 IIS でデータ サービスを実行すると、デバッグ時における HTTP 要求のトレースが容易になります。 また、データ サービスに必要なファイルやデータベースなどのリソースにアクセスするために IIS で必要とされる権限を事前に確認することもできます。 IIS でデータ サービスを実行するには、IIS と Windows Communication Foundation (WCF) がインストールされて正しく構成されており、ファイル システムおよびデータベースで IIS アカウントにアクセス権が付与されている必要があります。 詳細については、「方法: IIS 上で実行する WCF Data Service を開発する」を参照してください。

    注意

    開発環境でローカル IIS サーバーを構成できるようにするには、Visual Studio を管理者権限で実行する必要があります。

  2. Visual Studio 開発サーバー

    Visual Studio には、組み込みの Web サーバーとして、ASP.NET プロジェクトの既定の Web サーバーである Visual Studio 開発サーバーが用意されています。 この Web サーバーは、開発時にローカル コンピューターで ASP.NET プロジェクトを実行するように設計されています。 「WCF Data Services クイックスタート」では、Visual Studio 開発サーバーで実行されるデータ サービスを作成する方法を示しています。

    Visual Studio 開発サーバーを使用してデータ サービスを開発する場合は、次の制限事項に注意する必要があります。

    • このサーバーにはローカル コンピューター上でしかアクセスできません。

    • このサーバーは、HTTP メッセージの既定のポートであるポート 80 ではなく、localhost および特定のポートでリッスンします。 詳細については、「Web Servers in Visual Studio for ASP.NET Web Projects」を参照してください。

    • このサーバーでは、現在のユーザー アカウントのコンテキストでデータ サービスが実行されます。 たとえば、管理者レベルのユーザーとして実行する場合、Visual Studio 開発サーバーで実行されるデータ サービスは、管理者レベルの特権を持ちます。 そのため、データ サービスは、IIS サーバーに配置されたときにはアクセスする権限を持たないリソースにも、アクセスできることになります。

    • このサーバーには、認証など、IIS の必要以上の機能は含まれていません。

    • このサーバーでは、データ サービスから大きなバイナリ データにアクセスするときに WCF Data Services クライアントによって既定で送信されるチャンク HTTP ストリームを処理できません。 詳細については、「ストリーミング プロバイダー (WCF Data Services)」を参照してください。

    • このサーバーでは、キー値で WCF Data Services がピリオド (.) 文字をサポートしている場合でも、URL のピリオド文字を適切に処理できません。

    ヒント

    開発時に Visual Studio 開発サーバーを使用してデータ サービスをテストできる場合でも、IIS を実行する Web サーバーに配置した後でデータ サービスを再度テストする必要があります。

  3. Windows Azure 開発環境

    Windows Azure Tools for Visual Studio には、Visual Studio で Windows Azure サービスを開発するためのツールの統合セットが含まれています。 これらのツールでは、Windows Azure に配置できるデータ サービスを開発し、配置前にローカル コンピューターでデータ サービスをテストすることができます。 Visual Studio を使用して Windows Azure プラットフォームで実行されるデータ サービスを開発する場合は、これらのツールを使用してください。 Windows Azure Tools for Visual Studio は、Microsoft ダウンロード センターからダウンロードできます。 Windows Azure 上で実行されるデータ サービスの開発詳細情報:、ブログの記事「Windows Azure での OData サービスの配置」を参照してください。

開発のヒント

データ サービスを開発する際は、次の点を考慮してください。

  • ユーザーを認証する場合や、特定のユーザーのアクセスを制限する場合は、データ サービスのセキュリティ要件を決定します。 詳細については、「WCF Data Services のセキュリティ保護」を参照してください。

  • データ サービスをデバッグするときは、HTTP 検査プログラムを使用すると、要求メッセージおよび応答メッセージの内容を検査できるので非常に便利です。 生のパケットを表示できるネットワーク パケット アナライザーを使用すると、データ サービスの HTTP 要求および HTTP 応答を検査できます。

  • データ サービスのデバッグ時は、通常の操作時以上に、データ サービスの詳細なエラー情報が必要になることがあります。 データ サービスから詳細なエラー情報を取得するには、DataServiceConfigurationUseVerboseErrors プロパティを true に設定し、データ サービス クラスの ServiceDebugBehavior 属性の IncludeExceptionDetailInFaults プロパティを true に設定します。 詳細については、次のトピックを参照してください。、ブログの記事「WCF Data Services のデバッグ」を参照してください。 また、WCF でトレースを有効にして、HTTP メッセージング レイヤーで発生した例外を表示することもできます。 詳細については、「Configuring Tracing」を参照してください。

  • データ サービスは、通常、ASP.NET アプリケーション プロジェクトとして開発されますが、Visual Studio の ASP.NET Web サイト プロジェクトとしてデータ サービスを作成することもできます。 この 2 種類のプロジェクトの違いについては、「Web Application Projects versus Web Site Projects」を参照してください。

  • Visual Studio の [新しい項目の追加] ダイアログ ボックスを使用してデータ サービスを作成すると、そのデータ サービスは IIS の ASP.NET でホストされます。 ASP.NET と IIS がデータ サービスの既定のホストですが、その他のホスト オプションもサポートされています。 詳細については、「データ サービスのホスティング (WCF Data Services)」を参照してください。

WCF Data Services の配置

WCF Data Services では、データ サービスをホストするプロセスを柔軟に選択できます。 Visual Studio を使用して、次のプラットフォームにデータ サービスを配置できます。

配置に関する注意事項

データ サービスを配置する際は、次の点を考慮してください。

  • Entity Framework プロバイダーを使用して SQL Server データベースにアクセスするデータ サービスを配置する場合、データ サービスの配置でのデータ構造、データ、またはその両方の反映も必要になることがあります。 Visual Studio では対象データベースでこの操作を行うスクリプト (.sql ファイル) を自動的に作成することができ、これらのスクリプトを ASP.NET アプリケーションの Web 配置パッケージに含めることができます。 詳細については、「How to: Deploy a Database With a Web Application Project」を参照してください。 ASP.NET Web サイトの場合は、Visual Studio の Database Publishing Wizard を使用してこの操作を実行できます。 詳細については、「Deploying a Database by Using the Database Publishing Wizard」を参照してください。

  • WCF Data Services には基本的な WCF の実装が含まれているので、Windows Server AppFabric を使用して、Windows Server で実行されている IIS に配置されたデータ サービスを監視できます。 Server AppFabric を使用したデータ サービスの監視詳細情報:、ブログの記事「Windows Server AppFabric による WCF Data Services の追跡」を参照してください。

関連項目

概念

データ サービスのホスティング (WCF Data Services)

WCF Data Services のセキュリティ保護

その他の技術情報

データ サービス (WCF Data Services)