Windows Communication Foundation (WCF) サンプルは、Visual Studio IDE またはコマンド ラインの msbuild コマンドを使用してビルドできます。 この記事では、両方の手順について説明します。
注
WCF サンプルをビルドまたは実行する前に、 Windows Communication Foundation サンプルのOne-Time セットアップ手順を実行していることを確認してください。
コマンド プロンプトを使用してサンプルをビルドするには
Visual Studio の開発者コマンド プロンプトを開き、サンプルをインストールしたディレクトリの場所にある言語固有のサブディレクトリに移動します。
コマンド ラインで「
msbuild
」と入力します。 クライアント プログラム ファイルは client\bin にビルドされ、サービス プログラム ファイルは service\bin にビルドされます。 サービスがインターネット インフォメーション サービス (IIS) によってホストされている場合、サービス プログラム ファイルも servicemodelsamples ディレクトリとその \bin サブディレクトリにコピーされます。
注
実行しているアカウントに変更アクセス許可を付与するには 、%systemdrive%\inetpub\wwwroot に ACL を設定する必要があります。 それ以外の場合は、ビルド後のイベントの一部が失敗します。 または、ACL をそのままにして、SDK コマンド プロンプトを管理者として実行することもできます。
Visual Studio を使用してサンプルをビルドするには
Visual Studio の [ファイル] メニューから、[開く]、[プロジェクト>ソリューション] の順に選択します。 サンプルをインストールしたディレクトリの下にある言語固有のサブディレクトリに移動し、.sln ファイル アイコンをダブルクリックして Visual Studio でソリューションを開きます。
[ ビルド ] メニューの [ ソリューションのリビルド] を選択します。
クライアント プログラム ファイルは client\bin にビルドされ、サービス プログラム ファイルは service\bin にビルドされます。 サービスが IIS でホストされている場合、サービス プログラム ファイルも servicemodelsamples ディレクトリとその \bin サブディレクトリにコピーされます。
注
実行しているアカウントに変更アクセス許可を付与するには、%systemdrive%\inetpub\wwwroot に ACL を設定する必要があります。 それ以外の場合は、ビルド後のイベントの一部が失敗します。 または、ACL をそのままにして、SDK コマンド プロンプトまたは Visual Studio を管理者として実行することもできます。 一部の Visual Studio アクション (デバッガーを ASP.NET ワーカー プロセスにアタッチするなど) には、管理特権も必要です。
Batch ファイルとスクリプトのセットアップ
Setup.exe と Cleanup.exe のバッチ ファイルとスクリプトは、Visual Studio の開発者コマンド プロンプトから実行する必要があります。 いくつかのセットアップ ファイルとクリーンアップ ファイルは、管理者特権を必要とし、管理者特権で起動する必要があるタスクを実行します。
メタデータ エンドポイントに関する重要なセキュリティ情報
機密性の高い可能性があるサービス メタデータが意図せずに漏えいするのを防ぐために、Windows Communication Foundation (WCF) サービスの既定の構成ではメタデータの公開が無効になります。 この動作は既定ではセキュリティで保護されていますが、構成でサービスのメタデータ発行動作が明示的に有効になっていない限り、メタデータ インポート ツール (Svcutil.exeなど) を使用してサービスを呼び出すために必要なクライアント コードを生成できないことも意味します。 サンプルの実験を容易にするために、ほぼすべてのサンプルでセキュリティで保護されていないメタデータ発行エンドポイントが公開されます。 このようなエンドポイントは、匿名の認証されていないコンシューマーが使用できる可能性があり、そのようなエンドポイントをデプロイする前に注意して、サービスのメタデータを公開することが適切であることを確認する必要があります。 サービス メタデータの発行の詳細については、 メタデータ発行動作 のサンプルを参照してください。 メタデータ エンドポイントのセキュリティ保護のサンプルについては、 カスタム セキュリティで保護された メタデータ エンドポイントのサンプルを参照してください。
例外処理
一般に、これらのサンプルには、コードがサンプルの主題に焦点を当て続ける例外処理は含まれません。 例外処理の詳細については、 予期される例外 のサンプルを参照してください。
Svcutil を使用してクライアントと構成を再生成する
ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe) を使用して、ほとんどのサンプルのクライアント コードと構成を再生成できます。 一部のサンプルでは、手動で編集した構成が必要です。 たとえば、Svcutil.exe を使用してクライアント証明書の資格情報を使用するサンプルの構成を再生成する場合は、以前に構成した資格情報を手動で指定する必要があります。 一部のサンプルでは、生成されたコードに影響を与えるために特定の Svcutil.exe オプションを使用します。これらのオプションは、特定のサンプル トピックで指定されています。
クライアント ファイルと構成ファイルを再生成するには
SDK コマンド プロンプトを開き、サンプルをインストールしたディレクトリの場所にある言語固有のサブディレクトリに移動します。
サービスが Web ホスト型の場合は、次のコマンドを使用します。
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
サービスがセルフホステッドの場合は、次のコマンドを入力します。
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
http://localhost:8000/ServiceModelSamples/service.svc/mex
をセルフホステッド サービスの mex エンドポイントのアドレスに置き換えます。Visual Basic 型でクライアントを生成するには、次のコマンドを使用します。
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
サービスがセルフホステッド型の場合は、次のコマンドを使用します。
svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
注
クライアント構成の生成をスキップするには、 /noConfig オプションを追加します。