チュートリアル : XCOPY を使用した ASP.NET Web アプリケーションの配置
更新 : 2007 年 11 月
ASP.NET アプリケーションの配置は簡単です。ASP.NET アプリケーションを配置するには、作成したアプリケーション ファイルを、開発用のコンピュータから、アプリケーションをホストする実行用の Web サーバーにコピーする必要があります。ファイルをある場所から別の場所にコピーするには、XCOPY コマンド ライン ツールまたは任意の FTP アプリケーションを使用します。一般的な配置の詳細については、「.NET Framework での配置の基本」を参照してください。
メモ : |
---|
.NET Framework のすべてのバージョンでサポートされる XCOPY コマンド ライン ツールを使用する代わりに、%SystemRoot%\Microsoft.NET\Framework\version 2 or later\Aspnet_compiler.exe にある新しい .NET Framework 2.0 ツールを使用すると、Web アプリケーションをコンパイルして配置できます。詳細については、「ASP.NET コンパイル ツール (Aspnet_compiler.exe)」を参照してください。 |
カスタムの ASP.NET サーバー コントロールが格納されたアセンブリなど、Web アプリケーション全体で共有するアセンブリは、リモート サーバー上のグローバル アセンブリ キャッシュ (GAC: Global Assembly Cache) に配置する必要があります。
ローカル サーバー上のグローバル アセンブリ キャッシュに登録されているカスタム コンポーネントへの参照が含まれたアプリケーションを配置する場合、アプリケーションをリモート サーバーに配置してもそのコンポーネントは一緒に配置されません。リモート サーバー上のグローバル アセンブリ キャッシュにそのコンポーネントをインストールするか、または配置する前にローカル Web アプリケーションの Bin フォルダにカスタム コンポーネントをコピーする必要があります。
詳細については、「グローバル アセンブリ キャッシュ」を参照してください。アセンブリの詳細については、「アセンブリを使用したプログラミング」を参照してください。
Visual Web Developer などの一部の開発ツールには、アプリケーションを簡単に配置できるツールが用意されています。詳細についてはチュートリアル : Web サイトの公開 およびチュートリアル : Web サイトの公開 およびチュートリアル: Web サイトの発行ツールを使用した Web サイト プロジェクトの配置.
前提条件
このチュートリアルを実行するための要件は次のとおりです。
.NET Framework。
既存の ASP.NET Web サイト。ASP.NET Web サイトを既に構成している場合は、このチュートリアルの開始点としてそのサイトを使用できます。サイトをまだ構成していない場合、仮想ディレクトリまたはサイトの作成方法の詳細については、「方法 : IIS 5.0 および 6.0 内で仮想ディレクトリを作成および構成する」を参照してください。
ファイル パスまたは UNC パスを使用してアクセスできるアクセス先。
メモ : |
---|
このチュートリアルでは、Visual Web Developer や Visual Studio などのデザイナの使用は想定していません。 |
準備
大規模な Web サイトを配置する場合は、次の手順を使用して、ファイルをコピーしている間対象 Web サイトをオフラインにします。
配置する前に Web アプリケーションをオフラインにするには
App_offline.htm という名前のファイルを作成し、対象 Web サイトのルートに配置します。
App_offline.htm ファイルにわかりやすいメッセージを配置し、サイトを更新していることをクライアントに通知します。
App_offline.htm ファイルが存在している間は、この Web サイトに対するすべての要求をこのファイルにリダイレクトします。
重要 : ファイルのコピーが完了したら、必ず App_offline.htm ファイルを削除してください。
何らかのファイルの種類とフォルダに変更が発生した場合は、アプリケーション ドメインを再起動します。アプリケーション ドメインを再起動する前に、別のファイルの変更通知をアプリケーションが待機する秒数を設定できます。
アプリケーション ドメインを再起動する回数を最小限に抑えるには
Web アプリケーションの Web.config ファイルを開きます。Web.config ファイルがない場合は、次のコードを使用すると作成できます。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> </system.web> </configuration>
詳細については、「ASP.NET 構成ファイル」を参照してください。
Web.config ファイルに httpRuntime 要素 (ASP.NET 設定スキーマ) 要素を追加し、2 つのファイル コピー変更通知を更新するまでの時間を超える任意の秒数を waitChangeNotification 属性に設定します。たとえば、httpRuntime 要素は次のコードのようになります。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <httpRuntime waitChangeNotification="5" /> </system.web> </configuration>
httpRuntime 要素に maxWaitChangeNotification 属性を追加し、最初のファイル変更通知からアプリケーション ドメインを再起動するまで待機する最大の秒数をそれに設定します。ファイル コピー プロセスを完了するために必要な時間を超える数値をそれに設定します。ファイル変更通知は、この属性と waitChangeNotification 属性の値に基づいて結合されます。たとえば、httpRuntime 要素は次のコードのようになります。
<?xml version="1.0"?> <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <httpRuntime waitChangeNotification="5" maxWaitChangeNotification="10" /> </system.web> </configuration>
コマンド ラインで XCOPY を使用して ASP.NET Web アプリケーションを配置するには
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
[ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「cmd」と入力し、[OK] をクリックします。
コマンド プロンプトに次のコマンドを入力します。
xcopy /I /S<source path> <destination path>
このコマンドで、<source path> は Web アプリケーションへの完全パスを表し、<destination path> はアプリケーションの配置先となるディレクトリへの完全パスを表します。
メモ : XCOPY ツールでは物理ディレクトリ名を使用する必要があります。仮想ディレクトリ名は使用できません。
/S パラメータは、すべてのサブディレクトリおよびそれに格納されているファイルをコピーします。
/I パラメータは、ディレクトリがコピーされることを示します。コピー先のフォルダが存在しない場合は、XCOPY がそれを作成します。
c:\inetpub\wwwroot\devapp ディレクトリにあるすべてのファイルを d:\publicsites\liveapp ディレクトリにコピーするコマンドの例を次に示します。
Xcopy /I /Sc:\inetpub\wwwroot\devapp d:\publicsites\liveapp
コマンドは、回答を入力できる "Overwrite filename (Yes/No/All)?" などの質問に回答するまで一時停止します。
XCOPY の /EXCLUDE オプションを使用して、サブディレクトリ、特定のファイル拡張子を持つファイル、または特定の名前のファイルをコピーの対象から除外できます。詳細とパラメータについては、[開始] メニューで利用できる [ヘルプとサポート] ウィンドウの [Xcopy] を参照するか、またはコマンド ラインで「xcopy /?」と入力してください。
コマンド ラインから ASP.NET Web アプリケーションの個々のファイルを配置または更新するには
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
[ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「cmd」と入力し、[OK] をクリックします。
コマンド プロンプトに次のコマンドを入力します。
xcopy <source path> <destination path>
このコマンドで、<source path> はコピーするソース ファイルへの完全パスを表し、<destination path> はコピーするファイルの配置先となるディレクトリへの完全パスを表します。
あるドライブの \Bin ディレクトリから別のドライブの \Bin ディレクトリに単一の DLL をコピーするコマンドの例を次に示します。
Xcopy c:\inetpub\wwwroot\devapp\bin\sampleAssembly.dll d:\publicsites\liveapp\bin
あるドライブの Bin ディレクトリから別のドライブの Bin ディレクトリにすべての DLL ファイルをコピーするコマンドの例を次に示します。
Xcopy c:\inetpub\wwwroot\devapp\bin\*.dll d:\publicsites\liveapp\bin
コマンドは、回答を入力できる "Overwrite filename (Yes/No/All)?" などの質問に回答するまで一時停止します。
参照
処理手順
チュートリアル : カスタム サーバー コントロールの開発と使用
チュートリアル : IIS 6.0 における ASP.NET Web アプリケーションのルート ディレクトリの作成