FTP クライアントを使用してサイトを配置する (C#)

作成者: 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 クライアントと、このチュートリアルで使用するものは、Windows、Linux、Mac で使用できる無料のオープンソース FTP クライアントである FileZilla です。 ただし、FTP クライアントは機能するので、最も快適なクライアントを自由に使用できます。

フォローしている場合は、このチュートリアルまたはその後のチュートリアルを完了する前に、Web ホスト プロバイダーを使用してアカウントを作成する必要があります。 前のチュートリアルで説明したように、価格、機能、サービスの品質の広い範囲を持つ Web ホスト プロバイダー企業のギャグがあります。 このチュートリアル シリーズでは、私の Web ホスト プロバイダーとして Discount ASP.NET を使用しますが、サイトが開発されている ASP.NET バージョンをサポートしている限り、任意の Web ホスト プロバイダーをフォローできます。 (これらのチュートリアルは、ASP.NET 3.5 を使用して作成されました。また、このチュートリアルでは FTP を使用して Web ホスト プロバイダーにファイルをコピーするため、今後は Web ホスト プロバイダーが Web サーバーへの FTP アクセスをサポートすることが不可欠です。 ほぼすべての Web ホスト プロバイダーがこの機能を提供しますが、サインアップする前にダブルチェックする必要があります。

Book Review Web アプリケーション プロジェクトの配置

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

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

これで、必要なファイルをデプロイする準備ができました。 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.csASP.NET ソース コード ファイルはローカル コンピューター (開発環境) 上にありますが、明示的なコンパイルを使用するときにコード ファイルを展開する必要がないため、Web ホスト プロバイダー (運用環境) にはコピーされませんでした。

Note

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

一部の ASP ドット Net ソース コード ファイルがリモート サーバーにコピーされなかったことを示す FileZilla FTP クライアントのスクリーンショット。

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

サイトをデプロイした後は、少し時間を取ってサイトをテストします。 ドメイン名を購入し、DNS 設定を正しく構成している場合は、ドメイン名を入力してサイトにアクセスできます。 または、Web ホスト プロバイダーからサイトへの URL が提供されている必要があります。これは accountname のようになります。webhostprovider.com または webhostprovider.com/accountname。 たとえば、割引 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.cs
  • ~/About.aspx
  • ~/About.aspx.cs
  • ~/Site.master
  • ~/Site.master.cs
  • ~/Web.config
  • ~/Web.sitemap
  • フォルダーの Styles 完全な内容
  • フォルダーの Images 完全な内容 (およびそのサブフォルダー、 BookCovers)
  • ~/App_Code/BasePage.cs
  • ~/Fiction/Default.aspx
  • ~/Fiction/Default.aspx.cs
  • ~/Fiction/Blaze.aspx
  • ~/Fiction/Blaze.aspx.cs
  • ~/Tech/Default.aspx
  • ~/Tech/Default.aspx.cs
  • ~/Tech/CYOW.aspx
  • ~/Tech/CYOW.aspx.cs
  • ~/Tech/TYASP35.aspx
  • ~/Tech/TYASP35.aspx.cs

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

Asp dot Net ソース コード ファイルがサーバーに正常にアップロードされたことを示す FileZilla FTP クライアント ウィンドウのスクリーンショット。

図 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 サイトにアクセスできるようになります。

幸せなプログラミング!

もっと読む

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