次の方法で共有


FTP クライアントを使用したサイトの展開 (VB)

Scott Mitchell

PDF をダウンロードする

ASP.NET アプリケーションをデプロイする最も簡単な方法は、開発環境から運用環境に必要なファイルを手動でコピーすることです。 このチュートリアルでは、FTP クライアントを使用して、デスクトップから Web ホスト プロバイダーにファイルを取得する方法について説明します。

はじめに

前のチュートリアルでは、いくつかの ASP.NET ページ、マスター ページ、カスタム 基本 Page クラス、多数の画像、3 つの CSS スタイル シートで構成される、簡単なブック レビュー ASP.NET Web アプリケーションについて説明しました。 これで、このアプリケーションを Web ホスト プロバイダーにデプロイする準備が整いました。この時点で、インターネットに接続しているすべてのユーザーがアプリケーションにアクセスできるようになります。

展開する必要があるファイルの決定に関するチュートリアルの説明から、Web ホスト プロバイダーにコピーする必要があるファイルがわかっています。 (コピーされるファイルは、アプリケーションが明示的にコンパイルされているか、自動的にコンパイルされているかによって異なっていることを思い出してください。しかし、開発環境 (デスクトップ) から運用環境 (Web ホスト プロバイダーによって管理される Web サーバー) にファイルを取得するにはどうすればよいですか? F ile T ransfer P rotocol (FTP) は、ネットワーク経由でコンピューター間でファイルをコピーするために一般的に使用されるプロトコルです。 もう 1 つのオプションは、FrontPage Server Extensions (FPSE) です。 このチュートリアルでは、スタンドアロン FTP クライアント ソフトウェアを使用して、開発環境から運用環境に必要なファイルをデプロイすることに重点を置いています。

Visual Studio には、FTP 経由で Web サイトを発行するためのツールが含まれています。これらのツールと FPSE を使用するツールについては、次のチュートリアルで説明します。

FTP を使用してファイルをコピーするには、開発環境に FTP クライアント が必要です。 FTP クライアントは、インストールされているコンピューターから FTP サーバーを実行しているコンピューターにファイルをコピーするように設計されたアプリケーションです。 (Web ホスト プロバイダーが FTP 経由のファイル転送をサポートしている場合は、ほとんどの場合、その Web サーバーで実行されている FTP サーバーがあります)。使用できる FTP クライアント アプリケーションは多数あります。 Web ブラウザーは FTP クライアントとしても使用できます。 私のお気に入りの FTP クライアントと、このチュートリアルで使用するものは、Windows、Linux、Mac で使用できる無料のオープンソース FTP クライアントである FileZilla です。 ただし、FTP クライアントは機能するので、最も快適なクライアントを自由に使用できます。

フォローしている場合は、このチュートリアルまたはその後のチュートリアルを完了する前に、Web ホスト プロバイダーを使用してアカウントを作成する必要があります。 前回のチュートリアルで述べたように、価格、機能、サービスの品質が多様なウェブホスティング会社が多数存在しています。 このチュートリアルシリーズでは、私のWebホストプロバイダとして 割引 ASP.NET を使用しますが、サイトが開発されている ASP.NET バージョンをサポートしている限り、任意のWebホストプロバイダと一緒に従うことができます。 (これらのチュートリアルは、ASP.NET 3.5 を使用して作成されました。また、このチュートリアルでは FTP を使用して Web ホスト プロバイダーにファイルをコピーするため、今後は Web ホスト プロバイダーが Web サーバーへの FTP アクセスをサポートすることが不可欠です。 ほぼすべての Web ホスト プロバイダーがこの機能を提供していますが、サインアップする前に再確認する必要があります。

ブック レビュー Web アプリケーション プロジェクトの配置

Book Review Web アプリケーションには 2 つのバージョンがあることを思い出してください。1 つは Web アプリケーション プロジェクト モデル (BookReviewsWAP) を使用して実装され、もう 1 つは Web サイト プロジェクト モデル (BookReviewsWSP) を使用して実装されています。 プロジェクトの種類は、サイトが自動的にコンパイルされるか明示的にコンパイルされるかに影響し、コンパイル モデルによって展開する必要があるファイルが決まります。 したがって、BookReviewsWAP から始めて、BookReviewsWAP プロジェクトと BookReviewsWSP プロジェクトを個別にデプロイする方法について検討します。 まだダウンロードしていない場合は、この 2 つの ASP.NET アプリケーションをダウンロードしてください。

BookReviewsWAP フォルダーに移動し、BookReviewsWAP.sln ファイルをダブルクリックして、BookReviewsWAP プロジェクトを起動します。 プロジェクトを配置する前に、ソース コードに対する変更がコンパイル済みアセンブリに確実に含まれるようにビルドすることが重要です。 プロジェクトをビルドするには、[ビルド] メニューに移動し、[Build BookReviewsWAP] メニュー オプションを選択します。 これにより、プロジェクト内のソース コードが 1 つのアセンブリ ( BookReviewsWAP.dll) にコンパイルされ、 Bin フォルダーに配置されます。

これで、必要なファイルをデプロイする準備ができました。 FTP クライアントを起動し、Web ホスト プロバイダーの Web サーバーに接続します。 (Web ホスティング会社にサインアップすると、FTP サーバーへの接続方法に関する情報が電子メールで送信されます。これには、FTP サーバーのアドレスとユーザー名とパスワードが含まれます)。

デスクトップから Web ホスト プロバイダーのルート Web サイト フォルダーに次のファイルをコピーします。 Web ホスト プロバイダーの Web サーバーに FTP を接続すると、ルート Web サイト ディレクトリに配置されている可能性があります。 ただし、一部の Web ホスト プロバイダーには、web サイト ファイルのルート フォルダーとして機能する www または wwwroot という名前のサブフォルダーがあります。 最後に、FTPing ファイルの場合は、運用環境で対応するフォルダー構造 ( Bin フォルダー、 Fiction フォルダー、 Images フォルダーなど) を作成する必要があります。

  • ~/Default.aspx
  • ~/About.aspx
  • ~/Site.master
  • ~/Web.config
  • ~/Web.sitemap
  • Styles フォルダーの完全な内容
  • Images フォルダー (およびそのサブフォルダー、BookCovers) の完全な内容
  • ~/Fiction/Default.aspx
  • ~/Fiction/Blaze.aspx
  • ~/Tech/Default.aspx
  • ~/Tech/CYOW.aspx
  • ~/Tech/TYASP35.aspx
  • ~/Bin/BookReviewsWAP.dll

図 1 は、必要なファイルがコピーされた後の FileZilla を示しています。 FileZilla は、左側のローカル コンピューター上のファイルと、リモート コンピューター上のファイルを右側に表示します。 図 1 に示すように、 About.aspx.vbなどの ASP.NET ソース コード ファイルはローカル コンピューター (開発環境) 上にありますが、明示的なコンパイルを使用するときにコード ファイルを展開する必要がないため、Web ホスト プロバイダー (運用環境) にはコピーされませんでした。

ソース コード ファイルは無視されるため、実稼働サーバー上に存在しても問題はありません。 ASP.NET は、ソース コード ファイルに対する HTTP 要求を既定で禁止しているため、ソース コード ファイルが運用サーバーに存在する場合でも、Web サイトの訪問者はアクセスできなくなります。 (つまり、ユーザーが http://www.yoursite.com/Default.aspx.vb にアクセスしようとすると、これらの種類のファイル ( .vb ファイル) が禁止されていることを説明するエラー ページが表示されます)。

FTP クライアントを使用して、必要なファイルをデスクトップから Web ホスト プロバイダーの Web サーバーにコピーします。

図 1: FTP クライアントを使用して、デスクトップから Web ホスト プロバイダーの Web サーバーに必要なファイルをコピーする (フルサイズの画像を表示する をクリックします)

サイトをデプロイした後、少し時間を取ってサイトをテストします。 ドメイン名を購入し、DNS 設定を正しく構成している場合は、ドメイン名を入力してサイトにアクセスできます。 または、Web ホスト プロバイダーから、 アカウント名のようなサイトへの URL が提供されている必要があります。webhostprovider.com または webhostprovider.com/accountname。 たとえば、割引 ASP.NET のアカウントの URL は、 http://httpruntime.web703.discountasp.netです。

図 2 は、展開された書籍レビュー サイトを示しています。 "私が Discount ASP.NET のサーバー (http://httpruntime.web703.discountasp.net) で見ていることに注意してください。" この時点で、インターネットに接続している人は誰でも私のウェブサイトを見ることができました! 予想通り、サイトは開発環境でテストするときと同じように見え、動作します。

アプリケーションの表示中にエラーが発生した場合は、正しいファイル セットがデプロイされていることを確認します。 次に、エラー メッセージを確認して、問題に関する手掛かりが明らかかどうかを確認します。 その後、Web ホスト企業のヘルプデスクに問い合わせたり、 ASP.NET フォーラムの適切なフォーラムに質問を投稿することができます。

書籍レビュー サイトは、インターネット接続を持つすべてのユーザーがアクセスできるようになりました。

図 2: ブック レビュー サイトは、インターネット接続を持つすべてのユーザーがアクセスできるようになりました (フルサイズの画像を表示する をクリックします)。

ブック レビュー Web サイト プロジェクトの展開

BookReviewsWSP Web サイト プロジェクトなど、自動コンパイルを使用する ASP.NET アプリケーションを展開する場合、 Bin フォルダーにコンパイル済みアセンブリはありません。 その結果、Web アプリケーションのソース コード ファイルを運用環境にデプロイする必要があります。 このプロセスを見てみましょう。

Web アプリケーション プロジェクトと同様に、最初にアプリケーションをビルドしてからデプロイすることをお勧めします。 Web サイト プロジェクトをビルドしてもアセンブリは作成されませんが、ページのコンパイル時エラーがチェックされます。 サイトの訪問者に見つけてもらうのではなく、今すぐこれらのエラーを見つける方が良いです!

プロジェクトが正常にビルドされたら、FTP クライアントを使用して、次のファイルを Web ホスト プロバイダーのルート Web サイト フォルダーにコピーします。 運用環境で対応するフォルダー構造を作成することが必要になる場合があります。

BookReviewsWAP プロジェクトを既にデプロイしているが、BookReviewsWSP プロジェクトのデプロイを試したい場合は、最初に BookReviewsWAP の展開時にアップロードされた Web サーバー上のすべてのファイルを削除してから、BookReviewsWSP のファイルをデプロイします。

  • ~/Default.aspx
  • ~/Default.aspx.vb
  • ~/About.aspx
  • ~/About.aspx.vb
  • ~/Site.master
  • ~/Site.master.vb
  • ~/Web.config
  • ~/Web.sitemap
  • Styles フォルダーの完全な内容
  • Images フォルダー (およびそのサブフォルダー、BookCovers) の完全な内容
  • ~/App_Code/BasePage.vb
  • ~/Fiction/Default.aspx
  • ~/Fiction/Default.aspx.vb
  • ~/Fiction/Blaze.aspx
  • ~/Fiction/Blaze.aspx.vb
  • ~/Tech/Default.aspx
  • ~/Tech/Default.aspx.vb
  • ~/Tech/CYOW.aspx
  • ~/Tech/CYOW.aspx.vb
  • ~/Tech/TYASP35.aspx
  • ~/Tech/TYASP35.aspx.vb

図 3 は、必要なファイルをコピーした後の FileZilla を示しています。 ご覧のように、 About.aspx.vbなどの ASP.NET ソース コード ファイルは、ローカル コンピューター (開発環境) と Web ホスト プロバイダー (運用環境) の両方に存在します。これは、コード ファイルを自動コンパイルを使用するときに展開する必要があるためです。

FTP クライアントを使用して、デスクトップから Web ホスト プロバイダーの Web サーバーに必要なファイルをコピーする

図 3: FTP クライアントを使用して、デスクトップから Web ホスト プロバイダーの Web サーバーに必要なファイルをコピーする (フルサイズの画像を表示する をクリックします)

ユーザー エクスペリエンスは、アプリケーションのコンパイル モデルの影響を受けません。 同じ ASP.NET ページにアクセスでき、Web アプリケーション プロジェクト モデルまたは Web サイト プロジェクト モデルを使用して Web サイトが作成されたかどうかに関係なく、外観と動作は同じです。

運用環境での Web アプリケーションの更新

Web アプリケーションの開発とデプロイは、1 回限りではありません。 たとえば、書籍レビュー Web サイトを作成するときに、さまざまなページを作成し、付属のコードを個人用コンピューター (開発環境) に記述しました。 特定の安定した状態になった後、他のユーザーがサイトにアクセスしてレビューを読むことができるように、アプリケーションをデプロイしました。 しかし、展開は、このサイトでの開発の終わりを示すものではありません。 書籍のレビューを追加したり、閲覧者が本を評価したり、自分のコメントを残したりするなどの新機能を実装することもできます。 このような拡張機能は開発環境で開発され、完了したらデプロイする必要があります。 そのため、開発とデプロイは循環的です。 アプリケーションを開発し、デプロイします。 サイトの稼働中と運用中は、新しい機能が追加され、バグが時間の経過と同時に修正されるため、アプリケーションの再デプロイが必要になります。 などです。

ご期待のとおり、Web アプリケーションを再デプロイする場合は、新しいファイルと変更されたファイルのみをコピーする必要があります。 変更されていないページやサーバー側またはクライアント側のサポート ファイルを再展開する必要はありません (ただし、変更しても問題はありません)。

明示的なコンパイルを使用する場合は、新しい ASP.NET ページをプロジェクトに追加したり、コード関連の変更を行ったりするたびに、プロジェクトをリビルドする必要があり、 Bin フォルダー内のアセンブリが更新されます。 そのため、運用環境で Web アプリケーションを更新するときに 、この更新されたアセンブリを運用環境にコピーする必要があります (他の新しいコンテンツと更新されたコンテンツと共に)。

また、 Web.config または Bin ディレクトリ内のファイルに対する変更が停止し、Web サイトのアプリケーション プールが再起動されることを理解します。 セッション状態が InProc モード (既定) を使用して保存されている場合、これらのキー ファイルが変更されるたびに、サイトの訪問者はセッション状態を失います。 この落とし穴を回避するには、 StateServer モードまたは SQLServer モードを使用してセッションを格納することを検討してください。 このトピックの詳細については、「 Session-State モード」を参照してください。

最後に、運用環境にコピーする必要があるファイルの数とサイズによっては、アプリケーションの再デプロイに数秒から数分かかる場合があることに注意してください。 この間、ユーザーがサイトにアクセスすると、エラーや奇妙な動作が発生する可能性があります。 アプリケーション全体を "オフ" にするには、 App_Offline.htm という名前のページをアプリケーションのルート ディレクトリに追加します。このページは、サイトがメンテナンスのために停止していること (または何であれ) について説明し、すぐにバックアップされることをユーザーに説明します。 App_Offline.htm ファイルが存在する場合、ASP.NET ランタイムは、すべての受信要求をそのページにリダイレクトします。

まとめ

Web アプリケーションをデプロイするには、開発環境から運用環境に必要なファイルをコピーする必要があります。 ファイルがネットワーク経由で転送される最も一般的な方法はファイル転送プロトコル (FTP) であり、ほとんどの Web ホスト プロバイダーは Web サーバーへの FTP アクセスをサポートします。 このチュートリアルでは、FTP クライアントを使用して必要なファイルを Web サーバーにデプロイする方法について説明しました。 デプロイすると、インターネットに接続しているすべてのユーザーが Web サイトにアクセスできるようになります。

ハッピープログラミング!

もっと読む

このチュートリアルで説明するトピックの詳細については、次のリソースを参照してください。