次の方法で共有


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 クライアント ソフトウェアを使用して、開発環境から運用環境に必要なファイルを展開することに重点を置いています。

Note

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

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

フォローしている場合は、このチュートリアルまたはその後のチュートリアルを完了する前に、Web ホスト プロバイダーでアカウントを作成する必要があります。 前のチュートリアルで説明したように、さまざまな価格、機能、サービスの品質を持つ Web ホスト プロバイダー企業のギャグがあります。 このチュートリアル シリーズでは、Web ホスト プロバイダーとして Discount 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 と BookReviewsWSP プロジェクトを個別に展開する方法を、BookReviewsWAP 以降で確認します。 まだダウンロードしていない場合は、これら 2 つの ASP.NET アプリケーションをダウンロードしてください。

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

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

次のファイルをデスクトップから Web ホスト プロバイダーのルート Web サイト フォルダーにコピーします。 Web ホスト プロバイダーで Web サーバーに FTP 接続すると、ルート Web サイト ディレクトリに配置される可能性があります。 ただし、一部の Web ホスト プロバイダーには、 または wwwroot という名前wwwのサブフォルダーがあり、Web サイト ファイルのルート フォルダーとして機能します。 最後に、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.vbASP.NET ソース コード ファイルはローカル コンピューター (開発環境) 上にありますが、明示的なコンパイルを使用するときにコード ファイルを展開する必要がないため、Web ホスト プロバイダー (運用環境) にはコピーされませんでした。

Note

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

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

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

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

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

Note

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

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

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

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

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

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

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

Note

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.vbASP.NET ソース コード ファイルは、ローカル コンピューター (開発環境) と Web ホスト プロバイダー (運用環境) の両方に存在します。これは、自動コンパイルを使用するときにコード ファイルを展開する必要があるためです。

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

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

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

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

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

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

Note

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

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

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

まとめ

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

プログラミングに満足!

もっと読む

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