Windows Communication Foundation (WCF) サービス公開は、WCF サービス ホストと WCF テスト クライアントによって提供される初期の開発環境から、テスト目的でアプリケーションを運用環境に実際にデプロイする作業を支援します。 最終的な展開計画にコミットする前に、Windows Communication Foundation (WCF) サービスの発行を使用して、WCF サービスが正しく実行され、発行する準備ができていることを確認できます。 また、テスト用のさまざまなターゲットの場所に WCF サービス ライブラリをデプロイすることもできます。
サポートされているサービスとターゲットの場所
WCF サービス発行では、一連の WCF サービス ライブラリ テンプレートとそれに対応する項目テンプレートから作成された WCF サービスの発行がサポートされています。これには、次のものが含まれます。
アイテム テンプレートを含む WCF サービス ライブラリ テンプレート。
シンジケーション サービス ライブラリ。
これらのサービス テンプレートは、[ ファイル>新しいプロジェクト> [Visual Basic または Visual C#] >WCF を選択することで確認できます。 この場所の他の WCF テンプレート (WCF ワークフロー サービス アプリケーションや WCF サービス アプリケーションなど) の場合は、 web アプリケーションの発行One-Click 使用して発行できます。
サービスは、次のターゲットの場所に発行できます。
ローカル IIS。
ファイル システム。
FTP サイト。
WCF サービスの発行の使用
サービス実装をデプロイするには、次の手順を実行します。
管理者特権で Visual Studio を開きます (実行可能ファイルを右クリックし、[ 管理者として実行 ] を選択して開きます)。 IIS 7.0 以降を使用している場合は、コントロール パネルの [Windows の機能を有効または無効にする] を使用して、"IIS メタベースと IIS6 構成の互換性" コンポーネントがインストールされていることを確認します。
サービス プロジェクトを開き>メイン メニューから [ビルドプロジェクト名<プロジェクト名>を選択するか、ソリューション エクスプローラーでプロジェクトを右クリックして [発行] をクリックします。
[発行] ウィンドウが表示されます。 [...] をクリックします。 ボタンをクリックして、サービスをデプロイするターゲットの場所を指定します。 ローカル IIS、ファイル システム、または FTP サイトにアプリケーションを展開することを選択できます。 アプリケーションをローカル IIS に展開する場合は、右上隅にある [新しい Web アプリケーションの作成] アイコンをクリックして、Web サイトを選択し、その下に Web アプリケーションを作成 できます。
メイン ウィンドウで [ 発行 ] をクリックすると、Visual Studio によって指定したターゲットの場所にアプリケーションがデプロイされ、Web.config、.svc、およびアセンブリ ファイルがターゲット ディレクトリにコピーされます。 . .svc の名前は "ProjectName.ServiceName.svc" になります。 サービスが正常に発行されると、Visual Studio の [出力] ウィンドウにホットリンクが表示され、"
http://localhost/WebApplicationFolderName...
への接続" のようになります。 Ctrl キーを押しながらリンクをクリックすると、Visual Studio 内でブラウザー ページが開き、サービス ディレクトリ構造が表示されます。サイトを参照できない場合は、IIS でディレクトリ ブラウザーが有効になっていない可能性があります。 有効にするには、「試すことができるもの」セクションのヒントに従ってください。 または、
http://localhost/WebApplicationFolderName/ProjectName.ServiceName.svc
を直接入力してサービス ページを表示することもできます。
発行を使用すると、プロジェクトで定義されているすべてのサービスのアセンブリ、構成、および .svc ファイルをターゲットの場所にコピーするかどうかを指定し、コピー先の既存のファイルを上書きできます。
アプリケーションをローカル IIS に展開する場合は、IIS のセットアップに関連するエラーが発生する可能性があります。 IIS が正しくインストールされていることを確認してください。 ブラウザーのアドレス バーに http://localhost
を入力し、IIS の既定のページが表示されるかどうかを確認できます。 場合によっては、IIS での ASP.NET または WCF の不適切な登録によっても問題が発生する可能性があります。 Visual Studio の開発者コマンド プロンプトを開き、コマンド aspnet_regiis.exe -ir
を実行して ASP.NET 登録の問題を修正するか、コマンド ServiceModelReg.exe –ia
を実行して WCF 登録の問題を修正できます。
発行用に生成されたファイル
WCF サービス ライブラリを Web ホストする前に、アセンブリ ファイル、Web.config ファイル、および .svc ファイルのファイルがツールによって生成されます。 すべてのファイルがターゲットの場所にコピーされます。 その後、サービスが発行されます。
アセンブリ ファイル
このツールを使用して WCF サービスを発行すると、サービスが最初に自動的にビルドされ、ビルド後にサービス プロジェクトにアセンブリ ファイルが生成されます。
.SVC ファイル
発行操作では、ファイルが存在するかどうかに関係なく、WCF サービスごとに *.svc ファイルが生成され、バージョンの有効性が確保されます。 2 種類の svc ファイルがあります。1 つは WCF サービス ライブラリとシンジケーション サービス ライブラリ用、もう 1 つはシーケンシャル および ステート マシン ワークフロー サービス ライブラリ用です。 生成された *.svc ファイルは、ターゲットの場所のルート フォルダーにコピーされます。
Web.config ファイル
サービス プロジェクトが特定のターゲットの場所に発行されるたびに、Web.config ファイルが作成されます。
生成された Web.config ファイルには、Web ホスティングに役立つ Web セクションと、WCF サービス ライブラリの App.config の内容が含まれます。次の変更が加えられます。
ベース アドレスは除外されます。
ターゲット プラットフォームのトレース設定を保持するために、
<diagnostics>
要素の設定は除外されます。
HTTP 以外のバインドを使用した WCF サービスの IIS への発行
IIS7.0 以降を使用している場合は、HTTP 以外のバインドを持つ WCF サービスを IIS に発行できます。 いくつかの事前構成を行う必要があります。 詳細については、「 Windows プロセス アクティブ化サービスでのホスティング」のトピックを参照してください。
安全
IIS を管理者アカウントで実行する必要があるため、ローカル IIS に発行するには管理者特権が必要です。 管理者特権を持たないユーザーが WCF サービス公開を開いた場合、IIS はターゲットの場所として使用できません。 ファイル システムまたは FTP サイトへの発行は、管理者特権なしで機能します。