Visual Studio 2005 の機能強化

作成者: Microsoft

Visual Studio 2005 は、Web アプリケーション開発者に Web プロジェクトの機能強化と機能強化の長いリストを提供します。

Visual Studio 2005 は、Web アプリケーション開発者に Web プロジェクトの機能強化と機能強化の長いリストを提供します。 Visual Studio .NET 2002 および 2003 と同じくらい強力ですが、Web プロジェクトの処理方法には多くの苦情がありました。 Visual Studio 2005 では、これらの苦情に対処するために、多数の新機能が追加されています。 Visual Studio .NET 2003 が Web アプリケーションのコンパイルを処理する方法を好むユーザーについては、「 Web アプリケーション プロジェクト」を参照してください。

このモジュールでは、Web プロジェクトの作成、管理、開発の改善について説明します。 後のモジュールでは、Web プロジェクトのビルドとデプロイの改善について説明します。

FrontPage サーバー拡張

Visual Studio .NET 2002 および 2003 では、Web プロジェクトを作成またはビルドするために、ボックスに FrontPage Server Extensions が必要でした。 開発者は、2 つの異なるアクセス モード (FrontPage Server Extensions またはファイル アクセス モード) のどちらかを選択しました。どちらも FrontPage Server Extensions を使用して、IIS でのアプリケーション ルートの設定などのタスクを実行しました。

Visual Studio 2005 では、ローカル プロジェクトの FrontPage Server 拡張機能への依存が削除されます。 Visual Studio 2005 は、FrontPage Server Extensions を使用する代わりに IIS メタベースに直接アクセスするようになりました。 Visual Studio 2005 では、FrontPage Server 拡張機能を必要とせずにリモート プロジェクト アクセスを可能にする FTP のサポートも追加されています。

プロジェクトで FrontPage Server 拡張機能を使用する開発者の場合、このオプションは引き続き使用できます。 ただし、ASP.NET 開発者コミュニティからの強いフィードバックに基づいて、これは要件ではありません。

Note

FrontPage Server 拡張機能は、リモート プロジェクトの作成、オープンなどに必要です。

ASP.NET 開発サーバーの概要

Visual Studio 2005 には、ASP.NET Development Server という新しい Web サーバーが付属しています。 (この Web サーバーは、以前は Cassini と呼ばれていました)。

ASP.NET 開発サーバーにはいくつかの利点があります。

  • 管理者以外のユーザーが Web サーバーに対して開発およびデバッグできるようになりました。
  • ASP.NET 開発サーバーは、柔軟なプロジェクトの場所を可能にする、ファイル システム内の任意の場所に仮想ディレクトリを動的にマップします。
  • IIS を既に使用している Windows XP Professional のユーザーは、IIS の既定の Web サイトのファイルまたはフォルダー構造に影響を与えない新しい Web アプリケーションを作成できるようになりました。

ASP.NET 開発サーバーを利用するために特別な構成は必要ありません。 ファイル システムでホストされている Web プロジェクトがデバッグまたは参照されると、Visual Studio 2005 は、要求を処理するためにランダムなポートで ASP.NET 開発サーバーのインスタンスを自動的に開始します。

詳細については、このモジュールで後述する ASP.NET 開発サーバーで説明します。

ファイル管理の改善

Visual Studio 2002 および 2003 では、プロジェクト ファイル (VB.NET の場合は .vbproj、C# の場合は .csproj) には Web アプリケーション内のすべてのファイルに関する情報が格納されています。 ソリューション エクスプローラー表示は、プロジェクト ファイル内のファイル情報に基づいています。 このため、ソリューション エクスプローラーでは、外部エディターが使用された場合に不正確な情報が表示されることがよくあります。 Visual Studio 2002 および 2003 では、多くの場合、ファイルの変更が上書きされるか、最新バージョンのファイルが表示されません。

Visual Studio 2005 では、プロジェクト ファイルは使用されません。 代わりに、ファイルとフォルダーの情報がディスクから直接読み取られ、プロジェクト内のファイルが正確に表示されます。 Visual Studio 2002 および 2003 の References フォルダーは Web アプリケーション内の実際のフォルダーを表していないため、Visual Studio 2005 では References フォルダーもソリューション エクスプローラーから削除されます。 Visual Studio 2005 でプロジェクトの参照にアクセスするには、プロジェクトの [プロパティ] ページを使用する必要があります。

Web プロジェクトの作成

Web 開発者には、Visual Studio 2005 でプロジェクトを作成するための新しいオプションが多数用意されています。 これで、ファイル システム内の任意の場所に Web サイトを作成し、新しい ASP.NET 開発サーバーを使用してデバッグまたは参照できるようになりました。 開発者は、FTP を使用して新しい Web サイトを作成することもできます。

Visual Studio 2005 で Web プロジェクトを作成するビデオ チュートリアルを表示するには、ここをクリックしてください。

ビデオFull-Screen開く

ファイル システム プロジェクト

ビデオチュートリアルで説明したように、ファイル システム上の Web サイトは、ローカル コンピューター上またはファイル共有経由でリモートの場所に作成することを選択できます。 ファイル システムで作成された Web サイトは、ASP.NET 開発サーバーを使用して参照およびデバッグされます。

注意

ASP.NET 開発サーバーは、顧客に混乱を引き起こす可能性があります。 IISs ディレクトリ構造 (c:/inetpub/wwwroot) のファイル システムで Web プロジェクトが作成された場合でも、Visual Studio 2005 内から起動すると、Web サイトは ASP.NET 開発サーバー経由で参照されます。 したがって、IIS 構成 (つまり認証方法) は適用されません。

既定の Web プロジェクトでは、Default.aspx ページ、default.cs ファイル、App/_Data フォルダーのみが含まれるので、オーバーヘッドの多くも削除されます。 web.configと特別なフォルダー (つまり、アプリ/_code) は、必要に応じて追加されます。 Web プロジェクトには、必要なファイルとフォルダーのみが含まれています。

HTTP プロジェクト

HTTP プロジェクトは、ローカル IIS Web サイトまたはリモート Web サイトで作成されたプロジェクトにすることができます。 既定のプロジェクトの場所は です http://localhost。 [参照] ボタンをクリックすると、ローカル IIS とリモート サイトの 2 つの HTTP オプションがあります。 これら 2 つのオプションのメイン違いは、[場所の選択] ダイアログボックスに Web サイト情報を表示する方法と、ファイルを Web サーバーにコピーする方法です。

[ローカル IIS] オプションは、ローカル コンピューター上のメタベースからサイト情報を読み取り、ファイル はファイル システムを使用してコピーされます。 [リモート サイト] オプションは FrontPage Server Extensions を使用し、サイト情報とファイルは HTTP および FrontPage Server Extensions RPC 呼び出しを使用してコピーされます。

注意

vs###/_tmp.htm ファイルと get/_aspx/_ver.aspx は、バージョン情報の決定に使用されなくなりました。

既定の HTTP オプションはローカル IIS です。 このオプションは IIS メタベースを読み取り、使用可能なサイトとコンテンツを作成する場所を決定します。 別のフォルダーまたは仮想ディレクトリは、ツリー ビューで選択することで選択できます。 新しい仮想ディレクトリを作成したり、フォルダーをアプリケーションとしてマークしたり、このダイアログ ボックスから既存の仮想ディレクトリを削除したりすることもできます。

[場所の選択] ダイアログ

図 1: [場所の選択] ダイアログ

以前のバージョンの Visual Studio とは異なり、[Secure Sockets Layer の使用] チェックボックスをチェックし、SSL 証明書が参照している URL と一致しない場合は、続行するかどうかを確認する [セキュリティアラート] ダイアログが表示されます。 Visual Studio .NET 2003 を使用すると、証明書が一致するものでない場合、プロジェクトの作成は失敗します。

SSL 証明書に関するセキュリティ アラート

図 2: SSL 証明書に関するセキュリティ アラート

ホスト ヘッダーに関する注意事項

特定の IP にバインドされたサイトで Web アプリケーションを作成する場合は、ホスト ヘッダーが構成されていることを確認する必要があります。 それ以外の場合、Visual Studio は で http://localhostサイトを作成しますが、サイトが IDE 内から参照またはデバッグされると、IP アドレスは正しく解決されません。

[リモート サイト] オプションを選択すると、ダイアログが変更され、新しい Web サイトの宛先 URL を入力できるようになります。 この URL は、FrontPage Server 拡張機能が有効になっているサーバー上にある必要があります。 FrontPage Server 拡張機能を使用してローカル Web サーバーを操作する場合は、[リモート サイト] オプションを使用して、ローカル URL を指定できます。

リモート サーバーでの Web サイトの作成

図 3: リモート サーバーでの Web サイトの作成

SSL を使用してリモート サイトでアプリケーションを作成する場合、SSL 証明書が一致しない場合、確認ダイアログは[ローカル IIS] オプションを使用するときに表示されるダイアログと若干異なります。

リモート サイトセキュリティアラート

図 4: リモート サイトセキュリティアラート

FTP

Visual Studio 2005 では、FTP 経由で Web サイトを作成するオプションが導入されています。 このオプションを使用すると、IDE によってユーザーの一時フォルダーにファイルがローカルに作成され、FTP を使用してファイルが FTP の場所に移動されます。

Note

temp フォルダーの場所は c:/Documents and Settings/<User>/Local Settings/Temp/VWDWebCache/Server>/<_<application name です>

FTP オプションを使用すると、[場所の選択] ダイアログが表示されます。 次に示すように、このダイアログに必要な FTP 接続情報を入力します。

FTP の [場所の選択] ダイアログ

図 5: FTP の [場所の選択] ダイアログ

ラボ: FTP サイトをセットアップし、プロジェクトを作成する

次の手順では、ユーザーが FTP 経由でアップロードできる場所のみを持つように FTP サイトを構成します。

FTP サービスをインストールする

  1. [プログラムの追加と削除] を開き、[Windows コンポーネントの追加と削除] を選択します
  2. [インターネット インフォメーション サービス (Windows 2003 上のアプリケーション サーバー)] を選択し、[ 詳細] をクリックします。
  3. [ファイル転送プロトコル (FTP) サービス] を確認し、[OK] をクリックします
  4. [ 次へ ] をクリックして FTP サービスをインストールします。

コンテンツ用の新しいフォルダーを作成する

  1. Windows エクスプローラーで、c:/inetpub/wwwroot 内に User1 という名前の新しいフォルダーを作成します。

フォルダーに対するフォルダーとアクセス許可を構成します。

  1. 管理ツールからインターネット インフォメーション サービス スナップインを開きます。 これで、コンピューター名ノードの下に FTP サイト フォルダーが作成されます。
  2. [ FTP サイト] を展開します。
  3. [既定の FTP サイト] を右クリックし、[新規]、[仮想ディレクトリ] の順に選択し、[次へ] をクリックします。
  4. 仮想ディレクトリ名として 「User1 」と入力し、[ 次へ] をクリックします。
  5. パス に「c:/inetpub/wwwroot/User1 」と入力し、[ 次へ] をクリックします。
  6. [ 次へ ] をクリックし 、[完了] をクリック してウィザードを完了します。
  7. [既定の FTP サイト] で User1 仮想ディレクトリを右クリックし、[ プロパティ] を選択 します
  8. [ 書き込み ] チェック ボックスをオンにし、[ OK] を クリックしてダイアログを閉じます。
  9. [既定の FTP サイト] を右クリックし、[ プロパティ] を選択します
  10. [ セキュリティ アカウント ] タブで、[ 匿名接続を許可する] をオフにします。
  11. 続行するかどうかを確認するダイアログで [ はい ] をクリックします。
  12. [OK] をクリックしてダイアログ ボックスを閉じます。
  13. [ Web サイト ] ノードの下にある [既定の Web サイト] を 展開します。
  14. User1 ディレクトリを右クリックし、 [プロパティ] を選択します。
  15. [ アプリケーションの設定] セクションで、[ 作成 ] をクリックして、フォルダーをアプリケーションとしてマークします。
  16. [OK] をクリックしてダイアログ ボックスを閉じます。
  17. インターネット インフォメーション サービス スナップインを閉じます。

Web プロジェクトを作成する

  1. Visual Studio 2005 を開きます。
  2. [ ファイル ] メニューの [ 新しい Web サイト] を選択します。
  3. [ 場所 ] ドロップダウンで、[ FTP] を選択します。
  4. [参照] をクリックします。
  5. [サーバー] ボックスに「localhost」と入力します。
  6. [ディレクトリ] ボックスに 「User1 」と入力します。
  7. [開く] をクリックします。 FTP の場所が [新しい Web サイト] ダイアログに入力されます。
  8. [OK] をクリックします。
  9. [FTP ログオン] ダイアログで [ 匿名ログオン ] をオフにし、資格情報を入力して、[OK] をクリック します
  10. プロジェクトの URL は何ですか? (プロジェクトの URL は、ソリューション エクスプローラーに表示されます)。
  11. [ ビルド ] メニューの [ Web サイトのビルド ] または [ ソリューションのビルド] を選択します。
  12. ソリューション エクスプローラーで Default.aspx を右クリックし、[ブラウザーで表示] を選択します。
  13. [Web サイト URL 必須] ダイアログで、URL に「」と入力 http://localhost/user1 し、[OK] をクリック します

注意

型 /_Defaultを読み込めないことを示すエラーが表示される場合は、Web サイトで以前のバージョンではなく、ASP.NET 2.0 を実行していることを確認してください。 これは、インターネット インフォメーション サービスの [ASP.NET] タブから行うことができます。

Web プロジェクトを開く

Web プロジェクトを開くのは、プロジェクトの作成と似ています。 次のセクションでは、IDE 内で作業している間に注意を引く領域について説明します。 また、HTTP と FTP を使用した Web プロジェクトの操作についても説明します。

Web プロジェクトを開くには、[ファイル] メニューから [Web サイトを開く] を選択します。 前に説明したのと同じ [場所の選択] ダイアログが表示され、ファイル システム、ローカル IIS、FTP、リモート サイトの 4 つのオプションを使用できます。

ファイル システム

このモジュールで既に示したように、Visual Studio はプロジェクト ファイルを使用しなくなりました。 そのため、ファイル システムから Web サイトを開く場合は、選択したフォルダーが Visual Studio で最初に Web プロジェクトとして作成されていなくても、実際には任意のフォルダーを選択できます。 たとえば、[マイ ドキュメント] フォルダーを Web サイトとして開くことを選択すると、Visual Studio によって開き、次に示すようにファイルが表示されます。

Web サイトとして開いたドキュメント

図 6: Web サイトとして開かれたドキュメント

Visual Studio では必要な場合にのみ追加のファイルとフォルダーが作成されるため、開く場所に追加のファイルやフォルダーは追加されません。 このアーキテクチャの副作用は、ファイル システムで Web サイトを入れ子にできないようにすることです。 たとえば、次のディレクトリ構造を考えてみましょう。

C:/MyWebSite の Web プロジェクト

C:/MyWebSite/Nested の別の Web プロジェクト

c:/MyWebSite で Web サイトを開くと、そのアプリケーションのサブ フォルダーとして Nested フォルダーが表示されます。

HTTP

HTTP 経由で Web サイトを開くと、IIS メタベース (ローカル IIS) から、または FrontPage Server Extensions (リモート サイト) を使用して設定が読み取られます。入れ子になった Web アプリケーションがある場合、これらはアプリケーションとして識別されるアイコンと共に表示されます。 FrontPage での Web アプリケーションの操作に慣れている場合、Visual Studio 2005 での動作は似ています。

Visual Studio では、IDE 内で現在開かれているアプリケーションの下に入れ子になっているアプリケーションのアイコンが表示されますが、コンテンツを表示するために展開することはできません。 ただし、ダブルクリックして開くことができます。 この操作を行うと、Web アプリケーションを開くか (現在開いているソリューションを置き換える)、または Web アプリケーションを現在のソリューションに追加するように求めるダイアログが表示されます。

入れ子になったアプリケーション アイコンをダブルクリックすると、このダイアログが表示されます

図 7: 入れ子になったアプリケーション アイコンをダブルクリックすると、このダイアログが表示されます

FTP サイト

FTP を使用してサイトを開くと、ファイルはすべて一時フォルダーにローカルにコピーされます。 ローカル ストレージの場所の完全なパスは、プロジェクトの [プロパティ] ペインに表示され、次の形式で作成されます。

C:/Documents and Settings/<User>/Local Settings/Temp/VWDWebCache/<Server>/_<application name>

FTP を使用する場合、次に示すように参照できるように、Visual Studio でプロジェクトのベース URL を指定する必要があります。 ベース URL を指定しない場合、Web サイト内のページを初めて参照しようとすると、Visual Studio から要求されます。

FTP サイトのベース URL の指定

図 8: FTP サイトのベース URL の指定

コンパイルの機能強化

Visual Studio 2005 での Web アプリケーションの操作は、以前のバージョンよりも著しく高速です。 これは、コンパイル アーキテクチャの変更に少なからず起因します。

Visual Studio 2002 および 2003 では、Web アプリケーションは /bin フォルダーに存在する 1 つのプライマリ アセンブリにコンパイルされました。 Visual Studio 2005 では、App/_Code フォルダーが追加されました。 クラスとその他の UI 以外のコードは、App/_Code フォルダーに追加されます。 Visual Studio によってプロジェクトがビルドされると、App/_Code フォルダー内のすべてのファイルが 1 つの App/_Code.dll ファイルにコンパイルされます。 この変更の結果、後続のビルドは以前のバージョンよりもはるかに高速になります。

Note

MSBuild コマンド ライン ユーティリティを使用して、ASP.NET Web アプリケーションをビルドすることもできます。 このツールについては、モジュール 9 で説明します。

もう 1 つのコンパイル拡張機能は、[ビルド] メニューの新しい [ビルド ページ] オプションです。 この機能を使用すると、開発者は変更をより迅速にコンパイルできるように、現在のページ (もちろん、依存関係と共に) のみを再構築できます。 C# では IntelliSense の更新などの目的でバックグラウンド コンパイルが提供されないため、単一のページを再構築するだけで IntelliSense を迅速に更新できるため、この機能の利点は非常に大きくなります。

プロジェクトの [ビルド] プロパティを使用すると、スタートアップ ページが実行される前に発生するビルドの種類を構成できます。 開発者は、コード変更後に Visual Studio でアプリケーションのデバッグをより迅速に開始できるように、現在のページのみをビルドすることを選択できます。

ビルド ページの開始アクション

図 9: ビルド ページの開始アクション

Visual Studio と ASP.NET アーキテクチャのもう 1 つの優れた機能強化は、編集と続行の領域にあります。 Visual Studio 2005 では、開発者はデバッガーをデタッチせずにプロジェクトのデバッグを開始し、プロジェクトでコード変更を行うことができます。 実際、プロジェクトのデバッグを文字通り開始し、新しいクラスを追加し、そのクラスにコードを追加し、そのクラスの新しいインスタンスを作成するコードをページに追加し、デバッガーをデタッチせずにクラスのメソッドを実行できます。 新しいコードの実行は、ブラウザーを更新するのと同じくらい簡単です。

Visual Studio 2005 のエディット コンティニュ機能のビデオ チュートリアルを表示するには、ここをクリックしてください。

ビデオFull-Screen開く

ASP.NET 2.0 および Visual Studio 2005 の堅牢な編集と継続機能は、ASP.NET アプリケーションのアーキテクチャの変更によるものです。 ASP.NET 1.x では、Visual Studio 2002/2003 で作成されたアプリケーションは、/bin フォルダーに格納されたプライマリ アセンブリにコンパイルされました。 すべてのクラス、ページなど。アプリケーションの は、その 1 つの DLL にコンパイルされました。 実行時に、ASP.NET はページ内のすべてのコントロール、マークアップ、および ASP.NET コードをコンパイルし、それらの DLL を ASP.NET 一時フォルダーにコピーします。

ASP.NET 2.0 を使用する Visual Studio 2005 では、上記の 2 つのコンパイル モデル (Visual Studio 用と実行時に ASP.NET 用) の 2 つのコンパイル モデルが 1 つの一般的なコンパイル モデルにマージされています。 つまり、コンパイルの問題はすべて、実行時ではなく開発段階でキャッチされます。 また、ユーザー コントロールやマスター ページなどの機能に対するデザイナーと IntelliSense のサポートも可能です。

ここをクリックすると、ユーザー コントロールに対するデザイナーのサポートに関するビデオ チュートリアルが表示されます。

ビデオFull-Screen開く

注意

ユーザー コントロールがページから削除されると、ディレクティブはマークアップに残り、 @Register ユーザー コントロールが Web サイトから削除された場合にパーサー エラーを回避するために手動で削除する必要があります。

Visual Studio コンパイル モデルのもう 1 つの改善点は、Web サイトの発行機能です。 発行機能は Web サイトをプリコンパイルするため、開発者は必要に応じて何もコンパイルしなくても済むという追加のパフォーマンスを利用できます。 また、App/_Code フォルダー内のすべてのソース コードを DLL にプリコンパイルして、ソース コードをデプロイする必要がないようにします。

[Web サイトの発行] ダイアログ

図 10: [Web サイトの発行] ダイアログ

注意

aspnet/_compile.exe ユーティリティを使用して、ASP.NET Web アプリケーションを事前コンパイルすることもできます。 このツールについては、モジュール 9 で説明します。

Web サイトを発行すると、次に示すように、プリコンパイル済みファイルが一時 ASP.NET ファイル フォルダーに格納されます。 .compiled ファイル拡張子を持つファイルは、特定の DLL の依存関係を定義する XML ファイルです。 Web フォームまたはユーザー コントロールは、 App/Web/ で始まるランダム DLL にコンパイルされます。

[ このプリコンパイル済みサイトを更新可能にする ] チェック ボックスをオンのままにした場合、Web フォームとユーザー コントロール内のマークアップは DLL に事前コンパイルされず、デプロイ後に変更を加えることができるようになります。 展開されたコンテンツへの変更が許可されないようにマークアップをロックダウンする場合は、このボックスをオフにします。

[ 固定の名前付けアセンブリと単一ページ アセンブリを使用 する] チェック ボックスをオンにすると、バッチ コンパイルを無効にして、各ページが固定名アセンブリにコンパイルされるようにすることができます。 このボックスをオフのままにすると、バッチ コンパイルを利用できます。

[ プリコンパイル済みアセンブリで厳密な名前付けを有効にする ] チェック ボックスをオンにすると、プリコンパイル済みアセンブリに厳密な名前を付けられます。

注意

ASP.NET 1.x では、厳密な名前のアセンブリをグローバル アセンブリ キャッシュ (GAC) にインストールする必要がありました。 ASP.NET 2.0 では、厳密な名前のアセンブリを GAC にインストールする必要はありません。

ASP.NET アプリケーションの事前コンパイル済みファイル

図 11: ASP.NET アプリケーションの事前コンパイル済みファイル

注意

上記のアプリケーションでは、web.configファイルはありませんでした。 存在していた場合は、Web サイトの発行プロセスの後 にPrecompiledApp.config 呼び出されていました。

デプロイの機能強化

Visual Studio 2002 および 2003 と同様に、Visual Studio 2005 にはプロジェクトのコピー機能が用意されています。 ただし、この機能は Visual Studio 2005 で強化され、現在は Web サイトのコピーと呼ばれています。

[Web サイトのコピー] ダイアログは、左フレームと右枠に分割されます。 左側のフレームはソース Web サイトと呼ばれ、右側のフレームはリモート Web サイトと呼ばれます。 一部の開発者を混乱させる可能性がある点の 1 つは、適切なフレームに表示されるサイトが必ずしもリモート サイトではないということです。 ローカル ファイル システム上のサイト、または IIS のローカル インスタンス上のサイトである可能性があります。 また、左側のフレームに表示されるサイトは、リモート Web サイトからソース Web サイトに発行できるため、必ずしもソース Web サイトとは 限りません。

プロジェクトをリモート Web サイトにコピーする場合は、そのサイトに FrontPage Server Extensions がインストールされている必要があります。 そうでない場合は、FTP を使用して接続する必要があります。 一方、プロジェクトをローカル IIS インスタンスにコピーする場合、FrontPage Server 拡張機能は必要ありません。

注意

ローカル IIS インスタンスに新しい Web サイトを作成しようとして FrontPage 2002 サーバー拡張機能がインストールされている場合は、SharePoint サーバーで Web サイトの作成がサポートされていないことを示すエラー メッセージが表示されます。 その場合は、FrontPage 2000 Server Extensions をインストールするか、FrontPage Server Extensions を削除することができます。

Web サイトのコピー機能のビデオ チュートリアルについては、ここをクリックしてください。

Visual Studio の [Web サイトのコピー] 機能のビデオ チュートリアルのスクリーンショット。

ビデオFull-Screen開く

デバッグの機能強化

Visual Studio 2005 のデバッグには、4 つの主な機能強化があります。

  • 管理者以外としてローカルでデバッグすることはすぐに可能です。
  • Compilation 要素の Debug 属性が既定で false になりました。
  • リモート デバッグのセットアップと構成は、以前よりも簡単です。
  • FTP の場所を使用して開かれた Web サイトをデバッグできるようになりました。

管理者以外のデバッグ

ASP.NET 開発サーバーを追加すると、管理者以外のユーザーは、すぐに ASP.NET アプリケーションを簡単にデバッグできます。 ローカル ファイル システムで実行されている ASP.NET アプリケーションがデバッグされると、Visual Studio はログオンユーザーのコンテキストで ASP.NET 開発サーバーを起動します。 そのユーザーは、追加の構成なしでそのアプリケーションをデバッグできます。

デバッグは既定で False です

ASP.NET 1.x では、web.config ファイルのコンパイル要素の debug 属性が既定で true に設定されています。 アプリケーションを運用環境にデプロイする前に、常にこの属性を false に設定することをお勧めしますが、ほとんどの開発者は debug 属性を true に設定したままにした場合の結果を完全に理解していないため、そのままにしておくだけです。

デバッグ属性を true に設定した場合の最も深刻な問題は、ASP を無効にすることです。NET バッチ コンパイル モデル。 したがって、各ページは個別の DLL にコンパイルされます。 Web アプリケーションが何千ものページで構成されている場合 (決して前例がない)、そのアプリケーションによって数千の小さな DLL が作成されることを意味します。 これらの DLL のサイズは小さくなりますが、メモリ内の特定の場所には読み込まれません。 そのため、システム メモリの断片化が発生し、OutOfMemoryException の発生に寄与する可能性があります。

ASP.NET 2.0 では、debug 属性は既定で false に設定されています。 既に確認したように、開発者が Visual Studio 2005 で ASP.NET アプリケーションをデバッグすると、デバッグが有効になっているweb.config ファイルを追加するように求められます。 これにより、ASP.NET 1.x に存在していたのと同じ欠点が発生しますが、アプリケーションを運用環境に移行する前に属性を false にリセットする必要があることを開発者が明確に警告するようになりました。

リモート デバッグのセットアップと構成

Visual Studio 2002/2003 では、リモート デバッグはマシン デバッグ マネージャー (mdm.exe) とvs7jit.exe プロセスに依存していました。 そのため、リモート デバッグの問題のトラブルシューティングは、多くの場合、お客様にとってブラック ボックスであり、PSS にとってはあまり優れなかったことがよくあります。

Visual Studio 2005 では、mdm.exeプロセスとvs7jit.exe プロセスへの依存が削除されます。 代わりに、リモート デバッグ モニター サービス (msvsmon.exe) が使用されるようになりました。

Visual Studio 2005 のリモートでのデバッグの要件は非常に簡単です。 デバッグする前に、リモート サーバーでmsvsmon.exeを実行する必要があります。 Visual Studio CD からリモート デバッグ モニターをインストールするか、Web サーバーに何もインストールせずに共有からmsvsmon.exeを実行できます。

msvsmon.exeを実行すると、リモート デバッグのためにポートがブロックされているという問題が発生する可能性があります。 幸い、次に示すように、警告ダイアログ内の右側からポートのブロックを簡単に解除できます。

Windows ファイアウォールがリモート デバッグをブロックしていることを示す通知

図 12: Windows ファイアウォールがリモート デバッグをブロックしていることを示す通知

デバッグに必要なポートのブロックを解除すると、次に示すようにリモート デバッグ モニターが表示されます。 このインターフェイスから、接続を監視し、デバッグのアクセス許可を簡単に変更できます。

リモート デバッグ モニター

図 13: リモート デバッグ モニター

FTP 経由で開かれた Web アプリケーションをリモートでデバッグすることもできます。 手順は、前に説明したものと同じです。 ただし、このモジュールで前述したように、FTP プロジェクトを参照するためのベース URL を指定する必要があります。

ラボ 2

Visual Studio 2005 を使用したリモート デバッグ

このラボでは、Visual Studio 2005 を使用したリモート デバッグについて説明します。

このラボのビデオ チュートリアルについては、ここをクリックしてください。

Visual Studio でのリモート デバッグのビデオ チュートリアルのスクリーンショット。

ビデオFull-Screen開く

このラボでは、Visual Studio 2005 を実行しているマシンと IIS 5 以降を実行しているマシンを 2 台持っている必要があります。

  1. Visual Studio 2005 を開き、リモート サーバーに新しい Web サイトを作成します。

注意

Web サイトは、リモート IIS インスタンスまたは FTP を使用して作成できます。

  1. リモート Web サーバーから、UNC パスを使用して開発用コンピューター上のmsvsmon.exeを見つけて実行します。
    msvsmon.exeの既定の場所は、//server/c$/Program Files/Microsoft Visual Studio 8/Common7/IDE/Remote Debugger/x86 です。
  2. リモート デバッグ用のポートのブロックを解除するように求められたら、これを行います。
  3. 開発マシンから Default.aspx の分離コードを開き、Page/_Load メソッドにブレークポイントを設定します。
  4. 開発用コンピューターからデバッグを開始します。

期待どおりにブレークポイントにヒットする必要があります。

ASP.NET 開発サーバーの起動

既に説明したように、Visual Studio 2005 には、ASP.NET 開発サーバーと呼ばれる Web サーバーが付属しています。 (ASP.NET 開発サーバーは、Cassini と呼ばれることもあります)。この Web サーバーは、ファイル システムで実行されている Web アプリケーションを参照およびデバッグするための便利な手段です。

ASP.NET 開発サーバーは、制限付き Web サーバーです。 リモート接続は許可されません。Web サーバーを起動したユーザー以外のユーザーからの要求は許可されません。 また、ASP ページを提供する機能はありません。 ASP.NET リソースと HTML リソース (画像、CSS ファイルなど) のみが提供されます。

ASP.NET 開発サーバーは、c:/Windows/Microsoft.NET/Framework/v2.0./////* にあるWebDev.WebServer.exe ファイルを実行することで、コマンド ラインから起動できます。 次のダイアログには、使用可能なパラメーターが表示されます。

コマンド ラインから A S P ドット ネット開発サーバーを起動するためのパラメーターが表示されている Visual Studio ダイアログ ボックスのスクリーンショット。

図 14

注意

ASP.NET 開発サーバーは、コマンド ラインを介して明示的に起動する場合はサポートされません。