次の方法で共有


ASP.NET 配置の概要

更新 : 2007 年 11 月

Web サイトを開発したら、この Web サイトをテスト用の Web サーバー (ステージング サーバー) や、ユーザーがそのサイトを実際に使用するサーバー (運用サーバー) に配置できます。Web サイトの配置には、プリコンパイルなどの複数のオプションがあります。

このトピックの内容は次のとおりです。

  • シナリオ

  • 機能

  • 背景

  • コード例

シナリオ

Visual Studio で Web サイトを開発した後、次の配置方法のいずれかを選択できます。

  • Visual Studio 内のツールを使用して、Web サイトのファイルをターゲット サーバーにコピーします。

  • サイトをプリコンパイルし、指定した場所 (運用サーバーなど) に出力をコピーします。

ページのトップへ

機能

Visual Studio には、Web サイトを配置するために次のオプションが用意されています。

  • Web サイトのコピー ツール。現在の Web サイトをターゲット サーバーにコピーします。

  • Web サイトの発行ユーティリティ。Web サイトを実行可能ファイル セットとしてコンパイルします。その後、任意の方法でこれらのファイルをターゲット サーバーにコピーできます。

    Bb398992.alert_note(ja-jp,VS.90).gifメモ :

    Web サイトの発行ユーティリティは、Microsoft Visual Web Developer Express Edition では使用できません。

ページのトップへ

背景

Visual Studio には Web サイトのコピー ツールが用意されており、現在の Web サイトのファイルをターゲット サーバーにコピーできます。また、Web サイトの発行ユーティリティは、Web サイトを実行可能ファイル セットとしてコンパイルします。その後、任意の方法でこれらのファイルをターゲット サーバーにコピーできます。

Bb398992.alert_note(ja-jp,VS.90).gifメモ :

Web サイトは、Web アプリケーション プロジェクトを使用する方法でも作成できます。Web アプリケーション プロジェクトでは、すべてのクラス ファイルが単一のアセンブリにコンパイルされます。詳細については、「Web アプリケーション プロジェクトの概要」を参照してください。

Web サイトを作成し、ターゲット サーバーに配置する以外に、ファイル転送プロトコル (FTP: File Transfer Protocol) Web サイトを作成することもできます。その場合、ターゲット サーバー上でファイルを直接作成して編集します。これは、ホスト サーバー上の Web サイトを操作する場合に便利です。

Web サイトのコピー ツール

Web サイトのコピー ツールは FTP ユーティリティと似ています。ターゲット サーバー上でフォルダを開き、現在の Web サイトとターゲット Web サイト間でファイルをアップロードしたりダウンロードしたりできます。Web サイトのコピー ツールには、両方の Web サイト内のファイルをチェックして、自動的に両方のサイトが最新バージョンのファイルを持つようにできる、同期化機能もあります。

Bb398992.alert_note(ja-jp,VS.90).gifメモ :

ターゲット サーバーが FTP サーバーである場合は、FTP Web サイトを作成して、サーバーのファイルを開き、編集できます。詳細については、「FTP 配置 Web サイト」を参照してください。

Web サイトのコピー ツールは、次の機能をサポートしています。

  • .aspx ファイルやクラス ファイルなどのソース ファイルをターゲット サーバーにコピーできます。このシナリオでは、Web ページは要求時に動的にコンパイルされます。

  • Visual Studio でサポートされているどのような種類の Web サイトからでも、ファイルを開いてコピーできます。これには、ローカルのインターネット インフォメーション サービス (IIS: Internet Information Services)、リモート IIS、FTP Web サイトなどがあります。ターゲット サーバーに、FrontPage Server Extensions は必要ありません。

  • 同期化機能では、両方の Web サイト内のファイルをチェックして、自動的に両方のサイトが最新バージョンのファイルを持つようにします。

  • Web サイトのコピー ツールを使用してアプリケーション ファイルをコピーするときには、コピー前に App_offline.htm という名前のファイルがターゲット Web サイトのルート ディレクトリに作成されます。App_offline.htm ファイルが存在している間は、この Web サイトに対するすべての要求をこのファイルにリダイレクトします。ファイルには、Web サイトが更新中であることをクライアントに伝えるわかりやすいメッセージが表示されます。Web サイトのすべてのファイルがコピーされると、この App_offline.htm ファイルは、ターゲット Web サイトから削除されます。

Web サイトの発行ユーティリティ

Web サイトの発行ユーティリティは、Web ページ (.aspx ファイル) とコードを含む Web サイトの内容をプリコンパイルします。次に、指定したディレクトリまたはサーバーの場所に出力をコピーします。プリコンパイル プロセスの一部として直接発行できます。また、ファイルをローカルでプリコンパイルして、自分でコピーすることもできます。Web サイトの発行ユーティリティは、Web サイトをコンパイルして、ファイルからソース コードを取り除き、ページのスタブ ファイルとコンパイル済みアセンブリのみにします。ユーザーがページを要求した場合、ASP.NET はプリコンパイルされたアセンブリから要求を満たします。

Bb398992.alert_note(ja-jp,VS.90).gifメモ :

Web サイトの発行ユーティリティは、Microsoft Visual Web Developer Express Edition では使用できません。

Web アプリケーション プロジェクト

Web サイトの発行ユーティリティを使用する代わりに、Web アプリケーション プロジェクトを使用して Web サイトを作成することもできます。Web アプリケーション プロジェクトでは、すべてのクラス ファイルが単一のアセンブリにコンパイルされます。配置する必要があるのは、このアセンブリと、.aspx ファイルおよび .ascx ファイル、その他の静的コンテンツ ファイルだけです (この Web アプリケーション プロジェクト モデルは、Visual Studio .NET 2003 で使用されるモデルと似ています)。このモデルでは、.aspx ファイルは、ブラウザで実行されない限りコンパイルされません。Web アプリケーション プロジェクトの詳細については、「Web アプリケーション プロジェクトの概要」を参照してください。

配置ツールの選択

Web サイトのコピー ツールと Web サイトの発行ユーティリティのどちらを使用するかは、サイトをどのように使用して保守するかによります。

Web サイトのコピーツールの選択

Web サイトのコピー ツールを使用する利点は、次のとおりです。

  • 現在の Web サイトからターゲット コンピュータにファイルをコピーするだけの簡単な配置になります。

  • Visual Studio によってサポートされている任意の接続プロトコルを使用して、ターゲット コンピュータに配置できます。ネットワーク上の別のコンピュータの共有フォルダにコピーできます。FTP を使用してサーバーにコピーしたり、HTTP プロトコルを使用して FrontPage Server Extensions をサポートするサーバーにコピーしたりできます。

  • サーバー上で直接ページを編集したり、エラーを修正したりできます。

  • ファイルを中央サーバーで保管するプロジェクトの場合、同期化機能を使用して、ローカル ファイルとリモート ファイルを同期化できます。

Web サイトのコピー ツールを使用する場合の欠点は、次のとおりです。

  • サイトは、そのままコピーされるだけです。ファイルにコンパイル エラーが含まれていた場合、ユーザーがエラーの発生するページを実行しない限り、エラーは発見されません。

Web サイトの発行ユーティリティの選択

Web サイトの発行ユーティリティを使用する利点は、次のとおりです。

  • プリコンパイル プロセスにより、コンパイル時エラー、および Web.config ファイルと他の非コード ファイル内の潜在的なエラーを検出できます。

  • ソース コードが (オプションで指定した場合は、ASP.NET Web ファイルとユーザー コントロール内のマークアップも) Web サイトから分離されます。これにより、知的財産を保護でき、第三者がサイトのソース コードにアクセスしにくい状況を作ることができます。

  • サイト内のページが既にコンパイルされているため、最初の要求時にページを動的にコンパイルする必要がありません。これにより、ページの初期応答時間を短縮できます。ただし、ページが動的にコンパイルされる場合でも、以降の要求についてはその出力はキャッシュされます。

Web サイトの発行ユーティリティを使用する場合の欠点は、次のとおりです。

  • 指定する発行オプションによっては、サイトを変更する際、再コンパイルが必要になる場合があります。したがって、サイトの開発中、頻繁に変更を加えるような場合に Web サイトの発行ユーティリティを使用することは実用的ではありません。

  • Web サイトの発行ユーティリティでは、コンパイル済みサイトをリモート サーバーに配置することはできません。ローカル コンピュータまたはローカル エリア ネットワーク上の別のコンピュータにのみコピーできます。

    Bb398992.alert_note(ja-jp,VS.90).gifメモ :

    Web サイトの発行ユーティリティは、ターゲット フォルダとサブフォルダ内のファイルを上書きします。既存の内容を削除してもいい場所に発行するようにしてください。

Web サイトのコピー ツールの使用

Web サイトのコピー ツールを使用して、ローカル コンピュータからステージング サーバーまたは運用サーバーにファイルを移動できます。Web サイトのコピー ツールは、リモート サイトからファイルを開いて編集できない場合に特に便利です。Web サイトのコピー ツールを使用して、ローカル コンピュータにファイルをコピーして、編集し、リモート サイトにコピーして戻すことができます。また、開発が終了したら、このツールを使用してステージング サーバーから運用サーバーにファイルをコピーすることもできます。

Bb398992.alert_note(ja-jp,VS.90).gifメモ :

GAC に登録されているカスタム コンポーネントへの参照を含むアプリケーションをコピーした場合、そのコンポーネントはアプリケーションと共にコピーされません。詳細については、「方法 : Web サイトに .NET コンポーネントまたは COM コンポーネントへの参照を追加する」を参照してください。

ソース サイトとリモート サイト

Web サイトのコピー ツールは、ソース サイトとリモート サイト間でファイルをコピーします。これらの用語は、ツールが対象とする 2 つのサイトを区別するために使用されます。これらの用語は、それぞれ次の意味を持っています。

  • ソース サイト   Visual Studio で現在開いているサイトのことです。

  • リモート サイト   ファイルのコピー先サイトのことです。リモート サイトは、FrontPage Server Extensions や FTP を使用してアクセスできる別のコンピュータ上の場所でもかまいません。この場合、サイトは実際のリモート サイトになります。ただし、リモート サイトは、ローカル コンピュータ上の別のサイトの場合もあります。たとえば、ユーザーのコンピュータ上のファイル システム Web サイトから、同じコンピュータ上のローカル IIS Web サイトに公開する場合もあります。この場合、ユーザーのコンピュータにとってはコピー先サイトはローカルにありますが、Web サイトのコピー ツールを使用する場合はリモート サイトということになります。

ソース サイトは必ずしもコピー元でないことに注意してください。リモート サイトからソース サイトにコピーすることもできます。

サイトの同期化

同期化では、ローカル サイトとリモート サイト上のファイルが検査され、両方のサイト上のすべてのファイルが最新であるかどうかが確認されます。たとえば、リモート サイト上のファイルがソース サイト上の同じファイルより新しいファイルである場合、リモート サイト上のファイルがソース サイトにコピーされます。

Web サイトのコピー ツールでは、同じ名前で内容が異なるファイルのマージはできません。このような場合は、同期化によって、保持するファイルのバージョンを指定できます。

この同期化機能は、複数の開発者がそれぞれのローカル コンピュータ上で Web サイトのコピーを使用して作業する環境で役立ちます。個々の開発者は、共有リモート サーバーに最新の変更をコピーできます。同時に、他の開発者が変更したファイルでローカル コンピュータ上のファイルを更新できます。また、プロジェクトに新しく参加した開発者は、Web サイトの全ファイルをすばやくコピーできます。そのためには、ローカル コンピュータ上でローカル Web サイトを作成し、共有サーバー上のサイトと同期をとります。

ファイルの状態

ファイルの同期をとるには、Web サイトのコピー ツールは、両方のサイト上のファイルの状態に関する情報を必要とします。したがって、Web サイトのコピー ツールは、ファイルのタイムスタンプに加えて、同期を実行するのに必要な補足情報を保持します。たとえば、Web サイトのコピー ツールはファイルの最終チェック日時の一覧を保持しますが、これは、ファイルが削除されているかどうかを判断するのに使用されます。

サイトに接続すると (またはサイトを再表示すると)、Web サイトのコピー ツールは、両方のサイト上のファイルのタイムスタンプと、両方のサイトに対して格納されている情報を比較します。その後、各ファイルの状態を報告します。ファイルの状態を次の表に示します。

状態

説明

Unchanged

前回ファイルがコピーされてからファイルに変更はありません。

Changed

フィルが前回コピーされたときのタイムスタンプより新しいタイムスタンプが付いています。

New

前回サイトがコピーされてから追加されたファイルです。

Deleted

前回サイトがコピーされてから削除されたファイルです。Web サイトのコピー ツールの [削除されたファイルを表示する] を選択すると、削除されたファイルのエントリがウィンドウに表示されます。

Web サイトの発行ユーティリティの使用

Web サイトの発行ユーティリティを使用すると、Web サイトを発行できます。このユーティリティはサイトをコンパイルし、指定した場所 (運用サーバーなど) に出力をコピーします。

Bb398992.alert_note(ja-jp,VS.90).gifメモ :

Web サイトの発行ユーティリティは、Visual Web Developer Express Edition では使用できません。

公開では次のタスクが行われます。

  • ページ、App_Code フォルダ内のソース コードなどを実行可能な出力にプリコンパイルします。

  • 実行可能な出力をターゲット フォルダに書き込みます。

    Bb398992.alert_note(ja-jp,VS.90).gifメモ :

    GAC に登録されているカスタム コンポーネントへの参照を含むアプリケーションを公開した場合、そのコンポーネントはアプリケーションと共には公開されません。詳細については、「方法 : Web サイトに .NET コンポーネントまたは COM コンポーネントへの参照を追加する」を参照してください。

詳細については、「ASP.NET のプリコンパイルの概要」を参照してください。

プリコンパイル

公開の最初の段階として、Web サイトのプリコンパイルが行われます。プリコンパイルでは、ページがブラウザで最初に要求されたときに通常行われる動的コンパイルと同じコンパイル プロセスが実行されます。プリコンパイル プロセスは、ページからアセンブリを生成します。これにはマークアップとコードが含まれます。また、App_Code、App_GlobalResources、App_LocalResources、および App_Themes の各フォルダ内のファイルもコンパイルします。

シングル ファイル ASP.NET ページと分離コード ページの両方をコンパイルできます。これら 2 つのモデルの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。

公開用のプリコンパイルと、テスト時に Visual Studio で Web サイトをビルドする際に発生するコンパイルとは異なります。‎ビルドでは、サイト、または現在のページとその依存ファイルがコンパイルされ、実行されます。ビルド プロセスは、テストの 1 つの形式で、配置できる出力を生成するものではありません。一方、公開用のプリコンパイルでは、運用サーバーに配置できる指定のフォルダに出力が作成されます。

プリコンパイルされた出力の書き込み

プリコンパイルが終了すると、指定したフォルダに出力が書き込まれます。出力は、ファイル転送プロトコル (FTP) を使用して、または HTTP を使用してアクセスできる、ファイル システム内の任意のフォルダに書き込むことができます。ターゲット サイトに書き込むためには、適切なアクセス許可が必要です。

Bb398992.alert_note(ja-jp,VS.90).gifメモ :

公開では、Web サイトのフォルダまたはサブフォルダ内のファイルのみ配置されます。Machine.config ファイルは配置されません。したがって、ターゲット Web サーバーの構成はローカル コンピュータの Web サーバーの構成と異なる可能性があります。これは、アプリケーションの動作に影響する場合があります。

ステージング サーバーまたは運用サーバー上にターゲット フォルダを指定すること、またはローカル コンピュータ上のフォルダに出力を書き込むことができます。運用サーバー上のフォルダを指定した場合、シングル ステップでプリコンパイルと配置を行うことができます。Web サイトに含まれないフォルダに出力を書き込む場合、個別のステップで出力をサーバーにコピーできます。

Bb398992.alert_note(ja-jp,VS.90).gifメモ :

プリコンパイル済みの Web サイトを Visual Studio で開いた場合、その Web サイトをビルドすることはできません。ビルド オプションが無効になっています。発行された Web サイトを変更する場合、元の Web サイト内のファイルを編集し、サイトを再コンパイルし、再度発行します。

コンパイルの出力には、コードまたはページのコンパイル済みアセンブリが含まれます。プリコンパイル済みサイトの更新を許可するオプションを選択した場合、.aspx、.asmx、および .ashx の各ファイルの分離コード クラスはアセンブリにコンパイルされます。ただし、.aspx、.asmx、および .ashx の各ファイルそのものはターゲット フォルダにそのままの形でコピーされるので、サイトの配置後にそれらのレイアウトを変更できます。更新できるプリコンパイル済みサイトの場合、単一ファイル ページのコードはアセンブリにコンパイルされません。その代わりに、ソース コードとして配置されます。

静的ファイルはコンパイルされません。これらのファイルは出力フォルダにそのままの形でコピーされます。静的ファイルには、グラフィックス、.htm ファイルまたは .html ファイル、テキスト ファイルなどがあります。

プリコンパイル中に発生したエラーは、[出力] ウィンドウと [エラー一覧] ウィンドウに表示されます。プリコンパイル中にエラーが発生すると、サイトはコンパイルも公開もされません。

ページのトップへ

コード例

方法 : Web サイトのコピーツールで Web サイト ファイルをコピーする

方法 : ASP.NET Web サイトを配置のためにプリコンパイルする

方法 : プリコンパイルされた Web サイトのアセンブリに署名する

方法 : プリコンパイルされた Web サイトのバージョン付きアセンブリを作成する

方法 : ASP.NET コンパイル ツールで固定名を生成する

方法 : 公開する Web サイトを構成する

チュートリアル : Web サイトの公開

チュートリアル : Copy Web Site ツールを使用した Web サイトのコピー

ページのトップへ

参照

概念

Web アプリケーション プロジェクトの概要

ASP.NET のプリコンパイルの概要

参照

ページのトップへ