Visual Studio 2005 と IIS 7 の使用

公開日: 2008 年 4 月 1 日 (作業者: mvolo (英語))

更新日: 2009 年 9 月 9 日 (作業者: mvolo (英語))

はじめに

Visual Studio® には、Web サイトおよび Web アプリケーションを開発するときに、IIS と共に使用できるオプションが用意されています。この記事では、Windows Vista® SP1 および Windows Server® 2008 で、Visual Studio 2005 を使用し、Web アプリケーションと Web サイトの両方のプロジェクト モデルを使って、IIS 7 アプリケーションを操作、公開、およびデバッグする方法について説明します

Visual Studio 2008 を使用している場合は、「Visual Studio 2008 と IIS 7 の使用」を参照してください。Visual Studio 2008 には、IIS 7 の動作に影響する多くの変更と機能強化が含まれています。

ここでは、Visual Studio 2005 の Web 開発機能を IIS 7 と共に使用する際の概要を、これらの機能が正しく動作するようにするための手順と共に説明します。

必要条件

Visual Studio 2005 を使用してローカル コンピューター上の Web サイトおよびアプリケーションを操作するには、次のような作業を行います。

1. Visual Studio 2005 SP1 をインストールします。

2. IIS 7 をインストールします。

3. ASP.NET をインストールします。

4. IIS 6 メタベース互換性をインストールします。

Windows Vista では、コントロール パネルを開き、[プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] リンクをクリックします。[Internet Information Services] チェック ボックスをオンにし、その下の [Web 管理ツール] の [IIS 6 と互換性のある管理] の下にある [IIS メタベースおよび IIS 6 構成との互換性]、および [World Wide Web サービス] の [アプリケーション開発機能] の下にある [ASP.NET] チェック ボックスをオンにします。

Ff454098.VistaInstall-marked(ja-jp,TechNet.10).png

Windows Server 2008 では、サーバー マネージャー ツールを使用して、Web サーバー (IIS) の役割をインストールします。次に、[管理ツール] の [IIS 6 と互換性のある管理] の下にある [IIS 6 メタベース互換] および [アプリケーション開発] の下にある [ASP.NET] 役割サービスを追加します。詳細については、「Windows Server 2008 への IIS 7 のインストール」を参照してください。

Visual Studio 2005 を使用してリモート コンピューター上の Web サイトおよびアプリケーションを操作するには、この記事の「Visual Studio 2005 とリモート IIS 7 サーバーの使用」を参照してください。

管理者として Visual Studio 2005 を起動する

ローカル IIS アプリケーションのデバッグや作成など特定のタスクでは、管理者特権を持つユーザーとして Visual Studio を起動する必要があります。Windows Vista および Windows Server 2008 でビルトイン Administrator アカウントを使用して実行していない場合、[スタート] メニューで [Visual Studio 2005] アイコンを右クリックし、[管理者として実行] をクリックします。

このプロセスを簡単にするには、ショートカットを作成し、ショートカットのプロパティの [互換性] タブで [管理者としてこのプログラムを実行する] チェック ボックスをオンにします。

新しい IIS 7 Web サイトまたはアプリケーション プロジェクトの作成

Visual Studio には、Web アプリケーションを操作するための 2 つの概念モデルが用意されています。Web サイト プロジェクト モデルと Web アプリケーション プロジェクト モデルです。

どちらのオプションを使用しても、Web アプリケーションを作成し、IIS 7 サーバーに対して発行できますが、対応する ASP.NET アプリケーションを構築して展開する方法に大きな違いがあります。たとえば、2 つのモデルには次のような違いがあります。

  • Web アプリケーション プロジェクトを使用する場合は、ソース アプリケーション ファイルがローカル ファイル システムまたはネットワーク共有に配置されている必要があります。ただし、後でネットワーク共有、FTP、または Front Page Server Extensions を使用して、Web アプリケーションをリモート IIS 7 Web サイトに発行できます。
  • Web サイト プロジェクトを使用する場合は、直接ローカルの IIS 7 Web サイトに接続することも、ネットワーク共有、FTP、または Front Page Server Extensions を使用してリモートの IIS 7 Web サイトに接続することもできます。Web サイト プロジェクトでは、IIS 7 Web サイトのコンテンツを直接操作するので、プロジェクト ファイルはありません。

この 2 つのモデルとその相違点の詳細については、https://msdn2.microsoft.com/en-us/library/aa730880(VS.80).aspx を参照してください。 (英語)

: Visual Studio 2005 には、新しいプロジェクトを作成するオプションと、既存のプロジェクトを開くオプションが用意されています。これは、必ずしも、新しい IIS Web アプリケーションを作成するか、既存のアプリケーションを開くかしなければならないという意味ではありません。既存の IIS Web アプリケーションについて、いずれのオプションも使用できます。

Web アプリケーション プロジェクト オプションを使用して新しいプロジェクトを作成するには

  • Visual Studio で、[ファイル] メニュー、[新規作成]、[プロジェクト] の順にクリックし、[ASP.NET Web アプリケーション] テンプレートを選択します。

: Web サイト プロジェクト オプションとは異なり、アプリケーション ファイルはローカル ファイル システムまたはネットワーク共有に配置し、後で [発行] オプションを使用してアプリケーションのコンテンツを IIS 7 Web サイトに発行する必要があります。

プロジェクトを IIS 7 Web サイトに発行するには

1. IIS マネージャー、AppCmd、その他の構成ツールを使用して IIS 7 Web サイトを作成します。

詳細については、http://technet2.microsoft.com/windowsserver2008/en/library/f6c26eb7-ad7e-4fe2-9239-9f5aa4ff44ce1033.mspx?mfr=true を参照してください。または、既存の IIS 7 Web サイトを使用します。

2. Visual Studio で、[ビルド] メニューの [発行] オプションを使用して、Web アプリケーションのコンテンツを IIS 7 Web サイトに発行します。

Ff454098.PublishWeb(ja-jp,TechNet.10).png

: [Web の発行] ダイアログ ボックスの既定では、Web アプリケーションを構成するプロジェクトの一部だけが発行されます。プロジェクト ファイル、obj ディレクトリ、その他のファイルは発行されません。これらのコンポーネントを Web ユーザーに公開することはセキュリティ リスクとなる可能性があるので、このことは重要です。

[...] をクリックして、Web サイトを発行するための 4 つのオプションのいずれかを選択できます。

  • [ファイル システム]。このオプションを使用すると、Web アプリケーションがフォルダーとして開かれるか、作成され、組み込みの ASP.NET 開発サーバーを使用して Web サイトがホストされます。このオプションは、ASP.NET アプリケーションの基本的なテストには十分です。ただし、このモードは統合モードでの ASP.NET アプリケーションの実行をサポートしておらず、ASP.NET 以外のアプリケーション テクノロジー (PHP、ASP、CGI など) をサポートしていません。
  • [ローカル IIS]。このオプションを使用すると、アプリケーション ファイルをローカルの IIS 7 Web サイトまたはアプリケーションに発行できます。このダイアログ ボックスを使用して、ファイルの発行先の新しい IIS 7 アプリケーションまたは仮想ディレクトリを作成することもできます。
  • [FTP サイト]。このオプションを使用すると、アプリケーション ファイルが FTP を通じて共有されている場合にアプリケーション ファイルを編集できます。プロジェクトの開始設定でアプリケーションの URL を構成することによって、Visual Studio を使用してアプリケーションをデバッグすることができます。詳細については、この記事の「Visual Studio 2005 とリモート IIS 7 サーバーの使用」を参照してください。
  • [リモート サイト]。このオプションを使用すると、Visual Studio でリモート IIS サーバーに接続できます。このオプションを使用するには、リモート サーバーに Front Page Server Extensions がインストールされ、FPSE を使用するように Web サイトを構成している必要があります。詳細については、この記事の「Visual Studio 2005 とリモート IIS 7 サーバーの使用」を参照してください。

プロジェクトのプロパティを開き、[Web] タブをクリックし、[仮想ディレクトリの作成] をクリックすることによって、Web アプリケーション プロジェクト ディレクトリを、ローカルの IIS 7 インストール上の仮想ディレクトリとしてマップできます。[仮想ディレクトリの作成] オプションを使用すると、[Web の発行] オプションを使用せずに、IIS 上で簡単に Web アプリケーションをローカルにホストできます。

ただし、このオプションは一般的にはお勧めできません。IIS 7 仮想ディレクトリの提供可能な名前空間にプロジェクト ファイル、ソース ファイル、オブジェクト ファイル、およびその他の一時ファイルのすべてを配置するので、セキュリティ リスクの原因となる可能性があるからです。既定でプロジェクトの提供可能な部分のみを発行する [発行] オプションを使用することをお勧めします。

3. デバッグを構成します。

既定では、Web アプリケーション プロジェクト モデルを使用して作成されたプロジェクトでは、プロジェクトのテストまたはデバッグ時に、組み込みの ASP.NET 開発サーバーが使用されます。

これは、IIS 7 を使用せずに ASP.NET アプリケーションをテストするのに便利な方法ですが、IIS 7 環境でアプリケーションをテストするように Visual Studio を構成することをお勧めします。その理由は次のとおりです。

  • ASP.NET 開発サーバーは、統合モードでの ASP.NET アプリケーションのホスティングをサポートしていません。統合モードは IIS 7 で使用される既定の動作モードです。これにより、アプリケーションの動作が異なる可能性があります。
  • ASP.NET 開発サーバーは、IIS 構成機能の多くをサポートしていません。このため、アプリケーションでこれらの機能を使用している場合、ASP.NET 開発サーバーでホストしたときに、動作が異なったり、適切ではなかったりする可能性があります。
  • ASP.NET 開発サーバーは、ASP.NET 以外のアプリケーション テクノロジー (PHP、CGI、その他のサードパーティのフレームワークなど) を使用するアプリケーションのホスティング部分をサポートしていません。

Windows Vista で開発を行っている場合は、IIS 7 を利用することによって、展開後の環境と同じ環境を使用して、アプリケーションをローカルで簡単にテストできます。この場合、既に説明した [Web の発行] ダイアログ ボックスの [仮想ディレクトリの作成] オプションを使用します。

または、アプリケーションの発行先のリモート IIS 7 サーバーに接続するように Visual Studio を構成することもできます。

この場合は、IIS 7 環境でアプリケーションをデバッグするように Visual Studio を構成できます。そのためには、プロジェクト ノードを右クリックし、[プロパティ] をクリックし、[Web] タブをクリックします。[Web] タブで [IIS Web サーバーの使用] をクリックし、リモート サーバー上の Web アプリケーションのベース URL を入力します。

Ff454098.Properties-Web(ja-jp,TechNet.10).png

リモート デバッグの構成の詳細については、この記事の「IIS 7 Web アプリケーションのデバッグ」を参照してください。

Web サイト プロジェクト オプションを使用して新しいプロジェクトを作成するには

1. IIS マネージャー、AppCmd、その他の構成ツールを使用して IIS 7 Web サイトを作成します。詳細については、http://technet2.microsoft.com/windowsserver2008/en/library/f6c26eb7-ad7e-4fe2-9239-9f5aa4ff44ce1033.mspx?mfr=true を参照してください。または、既存の IIS 7 Web サイトを使用します。

2. Visual Studio で、[ファイル] メニュー、[新規作成]、[Web サイト] の順にクリックし、作成済みの IIS 7 Web サイトを使用して新しい Web サイト プロジェクトを作成します。

[新しい Web サイト] ダイアログ ボックスで、Visual Studio Web サイト テンプレートのいずれか ([ASP.NET Web サイト] など) を選択します。

次に、この Web サイトを配置する場所を指定します。そのためには、[参照] ボタンをクリックします。Web アプリケーション プロジェクトを発行するときと同じようなダイアログ ボックスが表示されます。ここで、[ローカル IIS] をクリックし、ローカル コンピューター上での既存の Web サイトまたはアプリケーションを選択するか、プロジェクト ファイルをホストするための新しい Web アプリケーションまたは仮想ディレクトリを作成します。

または、新しい Web サイト プロジェクトをローカルのファイル システムに配置して ASP.NET 開発サーバーで使用したり、FTP を使用してリモート サーバーにアップロードしたり、Front Page Extensions を使用してリモート IIS サーバーにアップロードしたりすることもできます。リモート サーバーへの接続の詳細については、この記事の「Visual Studio 2005 とリモート IIS 7 サーバーの使用」を参照してください。

既存の IIS 7 Web サイトまたはアプリケーションを開くには

既存の IIS 7 Web サイトに基づいてプロジェクトを作成するには

1. [ファイル] メニュー、[開く]、[Web サイト] をクリックして、既存の IIS 7 Web サイトを開きます。

[ローカル IIS] をクリックしてローカル IIS 7 サーバーに接続します。

表示されたダイアログ ボックスで、開く Web サイトまたは子アプリケーションを選択できます。または、右上の [新しい Web アプリケーションの作成]、[新しい仮想ディレクトリの作成]、および [削除] ボタンを使用して、Web サイト階層を管理することもできます。

: 構成を変更する前にバックアップを作成してください。

Ff454098.OpenSite-Dialog(ja-jp,TechNet.10).png

IIS 7 またはいずれかの必要条件がインストールされていない場合、ローカル IIS サーバーに接続しようとしたときに、Visual Studio 2005 によって、必要なコンポーネントのインストールを指示するメッセージが表示されます。必要なコンポーネントをインストールするには、この記事の「必要条件」を参照してください。

Ff454098.OpenSite-IISNotInstalled(ja-jp,TechNet.10).png

注: Visual Studio には、既存の IIS 7 Web サイトへの接続に加えて、既存の Web Saitowo 操作するためのオプションがいくつか用意されています。これには、次のようなオプションが含まれます。

  • [ファイル システム]。このオプションを使用すると、Web アプリケーションがフォルダーとして開かれるか、作成され、組み込みの ASP.NET 開発サーバーを使用して Web サイトがホストされます。このオプションを使用して、ローカル ファイル システムまたはネットワーク共有にある仮想ディレクトリのルート フォルダーを開くことによって、既存の IIS 7 Web サイトに接続できます。
  • [FTP サイト]。このオプションを使用すると、FTP によってアプリケーション ファイルを共有している場合に、アプリケーション ファイルの編集がサポートされます。詳細については、この記事の「Visual Studio 2005 とリモート IIS 7 サーバーの使用」を参照してください。
  • [リモート サイト]。このオプションを使用すると、Visual Studio でリモート IIS サーバーに接続できます。このオプションを使用するには、リモート サーバーに Front Page Server Extensions がインストールされ、FPSE を使用するように Web サイトを構成している必要があります。詳細については、この記事の「Visual Studio 2005 とリモート IIS 7 サーバーの使用」を参照してください。

2. デバッグを構成します。

[ローカル IIS] または [リモート サイト] オプションを使用して既存の IIS 7 Web サイトを開いた場合、プロジェクトはデバッグ時に IIS 7 Web サイトを使用するように自動的に構成されるので、それ以外に必要な操作はありません ([リモート サイト] オプションでは、後で説明するようにリモート デバッグを有効にするための追加の構成が必要です)。

[ファイル システム] または [FTP サイト] オプションを使用して Web サイト プロジェクトを開いている場合、既定では、テストおよびデバッグに ASP.NET 開発サーバーを使用するように構成されます。デバッグには、Web サイトが配置されている IIS 7 サーバーを使用するにように Visual Studio を構成することをお勧めします。

そのためには、Web サイト プロジェクト ノードを右クリックし、[開始オプション] をクリックます。表示されたダイアログ ボックスで、[カスタム サーバーを使用する] をクリックし、リモート サーバー上の Web アプリケーションのベース URL を入力します。

Ff454098.StartOptions-CustomServer(ja-jp,TechNet.10).png

Visual Studio 2005 とリモート IIS 7 サーバーの使用

リモート IIS サーバーで既存の Web サイトを開いたり、新しい Web サイトを作成したりするには、これまでに説明したように多くの選択肢があります。

  • [ファイル システム]。Web アプリケーションのルート仮想ディレクトリを指すファイル共有を作成し、[ファイル システム] オプションを使用して接続することができます。このオプションを使用するには、[Web サイトを開く] ダイアログ ボックスで [ファイル システム] をクリックします。次に、Visual Studio を使用してアプリケーションをデバッグできるように、プロジェクトの開始設定でアプリケーションの URL を構成する必要があります。このオプションを使用して、リモート コンピューター上で新しい IIS Web サイト、アプリケーション、または仮想ディレクトリを作成することはできません。

  • [FTP サイト]。Web サイトまたはアプリケーション ファイルが FTP を使用して共有されている場合は、このオプションを使用してこれらのファイルにアクセスできます。次に、Visual Studio を使用してアプリケーションをデバッグできるように、プロジェクトの開始設定でアプリケーションの URL を構成する必要があります。このオプションを使用するには、[Web サイトを開く] ダイアログ ボックスで [FTP サイト] をクリックします。このオプションを使用して、リモート コンピューター上で新しい IIS Web サイト、アプリケーション、または仮想ディレクトリを作成することはできません。

  • [リモート サイト]。このオプションでは、Front Page Server Extensions を使用してリモート IIS サーバーに接続します。このオプションを使用して Windows Server 2008 または Windows Vista コンピューター上のリモート IIS サーバーに接続するには、リモート コンピューターに Front Page Server Extensions をインストールしておく必要があります。

FTP を使用した IIS 7 Web サイトへの接続

FTP を使用して発行先の IIS 7 仮想ディレクトリを共有している場合は、[FTP サイト] オプションを使用できます。

: FTP を使用する場合は、IIS 7 Web サイト、アプリケーション、または仮想ディレクトリを作成または編集することはできませんが、ファイルを発行および編集することができます。

このオプションを使用するには、接続先の FTP サーバーのアドレス、ポート、ディレクトリ、およびログオン資格情報 (匿名アクセスを使用しない場合) を指定します。

Ff454098.OpenSite-FTP(ja-jp,TechNet.10).png

Windows Vista および Windows Server 2008 に含まれる FTP サーバーの使用の詳細については、「FTP Site Setup (IIS 6.0) (FTP サイトの設定 (IIS 6.0))(英語)」を参照してください。IIS.NET からダウンロードできる新しい FTP 7 を使用するには、「Web サイトへの FTP の追加」を参照してください。

Front Page Server Extensions を使用した IIS 7 Web サイトへの接続

Front Page Server Extensions を使用して発行先の IIS 7 Web サイトを共有している場合は、[リモート サイト] オプションを使用できます。[FTP サイト] オプションとは異なり、このオプションを使用している場合、IIS 7 アプリケーションおよび仮想ディレクトリを作成および編集できます。

Windows Vista および Windows Server 2008 用の Front Page Server Extensions for IIS 7(英語) は無料でダウンロードできます。IIS 7 Web サイト用に Front Page Server Extensions をインストールして有効にする方法の詳細については、「Front Page Server Extensions for IIS 7 のインストール (英語)」を参照してください。

リモート Web サイトを簡単に Visual Studio の [リモート サイト] オプションで使用できるようにするには、次の操作を実行します。

1. リモート IIS 7 サーバーにで FPSE をダウンロードしてインストールします。既定のインストーラーによって、必要なすべての IIS 7 コンポーネントが自動的にインストールされます。

2. 接続先の IIS 7 Web サイトを作成します (サイトが存在していない場合は省略可能)。

3. Web サイトで基本認証と Windows 認証のいずれかを有効にします。これは、FPSE でサイトを管理できるようにするために必要です。

: 基本認証を使用する場合、ユーザー名とパスワードはクリア テキストとして送信されるので、SSL を使用して通信を保護している場合を除き、パブリック ネットワーク上の Web サイトへの接続に基本認証を使用しないでください。**

4. Web サイトを FPSE を使用して管理できるようにします。そのためには、コマンド ラインから次のコマンドを実行します。

> "%CommonProgramFiles%\Microsoft Shared\Web Server Extensions\50\bin\owsadm.exe" -o install -p LM/W3SVC/<SITEID> -u <USERNAME>

ここで、<SITEID> は FPSE を有効にする Web サイトのサイト ID で、<USERNAME> は FPSE 管理者として操作を実行できる Windows アカウントです。

5. [Web サイトを開く] ダイアログ ボックスまたは [新しいサイト] ダイアログ ボックスの [リモート サイト] オプションを使用してサイトに接続します。これによって、既存の Front Page Server Extensions 対応 Web サイトに接続したり、新しい Web アプリケーションや仮想ディレクトリを作成したりできます。

Ff454098.OpenSite-RemoteSiteDialog(ja-jp,TechNet.10).png

接続時に次のエラー ダイアログ ボックスが表示された場合は、リモート サーバーに FPSE をインストールしていることと、接続しようとしている Web サイトについて FPSE 管理を有効にしていることを確認します。

Ff454098.OpenSite-NoFPSE(ja-jp,TechNet.10).png

FPSE 対応 Web サイトで Windows 認証を使用している場合は、Visual Studio を起動するときに使用されたアカウントを使用して認証が行われます。この認証に失敗した場合、リモート サーバーでの認証用の資格情報を入力するよう求められます。

基本認証を使用している場合は、直ちに資格情報の入力が求められます。

: 基本認証では資格情報がクリア テキストで送信されるので、サイトが SSL で保護されていない場合、ユーザー名とパスワードが誤って公開されてしまう可能性があります。このような理由から、イントラネット環境では Windows 認証を使用し、インターネット環境では SSL 上で基本認証を使用することをお勧めします。**

適切な認証方法 (Windows 認証、基本認証、またはダイジェスト認証) を有効にしていない場合、接続時に次のようなエラー ダイアログ ボックスが表示されます。この問題を修正するには、これらの認証方法のいずれかを有効にします。

Ff454098.OpenSite-NoAuth(ja-jp,TechNet.10).png

: [リモート サイト] ダイアログ ボックスの [新しい Web サイト] ボタンを使用して、新しい IIS 7 Web サイトを作成することはできません。このボタンは、パスを指定して、既存の Front Page Server Extensions 対応 IIS 7 Web サイト用の新しい Web アプリケーションを作成するために使用します。

IIS 7 Web アプリケーションのデバッグ

Visual Studio で Web サイトまたはアプリケーションを開いた後、Visual Studio のデバッグ機能を利用して Web サイトやアプリケーションをテストすることができます。この作業を行う場合、次のような選択肢があります。

  • F5 キーによるデバッグ機能を使用して Visual Studio からデバッグします。前述のいずれかの方法で IIS 7 Web サイト プロジェクトを開いている場合、これは Web アプリケーションをデバッグするための最も便利な方法です。F5 キーを押して、ブラウザー ウィンドウを使用してアプリケーションを操作するだけで、アプリケーションをデバッグすることができます。この記事の残りの部分では、この方法に重点を置いて説明します。
  • IIS ワーカー プロセスに直接アタッチします。どの IIS ワーカー プロセスがアプリケーションをホストしているかがわかっている場合は、このオプションを使用して直接そのプロセスにアタッチすることができます。

F5 キーを使用した Visual Studio でのローカル IIS 7 Web アプリケーションのデバッグ

F5 キーによるデバッグ機能は、Visual Studio で Web アプリケーションをデバッグするための最も便利な方法です。この機能を使用するには、次の手順を実行します。

  1. 前述のいずれかの方法で IIS 7 Web サイトを開きます。

  2. 最初の要求先のプロジェクト ファイルを選択します (省略可能)。

  3. アプリケーションのソース コードで適切なブレークポイントを設定します (省略可能。デバッグ中に設定することもできます)。

  4. F5 キーを押してデバッグを開始します。Visual Studio によって、IIS 7 Web アプリケーションに対して最初の要求が実行され、ホスティング IIS ワーカー プロセスにアタッチされて、アプリケーションを操作するための新しいブラウザー ウィンドウが表示されます。

注: Visual Studio 2005 を使用して、Windows Vista Home Basic または Home Premium エディション上のローカル IIS 7 アプリケーションをデバッグしている場合、デバッグを実行しようとすると認証エラーが発生する可能性があります。この問題とその修正プログラムについては、 KB 937523 を参照してください。Windows Server 2008 または Windows Vista のその他のエディションで IIS 7 アプリケーションのデバッグを行う場合、この問題は発生しません。

ローカル IIS 7 Web アプリケーションを正常にデバッグするには、次の要件を満たしている必要があります。

  1. ローカル コンピューター上で管理者特権を持つユーザー (ビルトイン Administrator アカウント、またはビルトイン Administrators グループのメンバーであるアカウント) としてログオンします。
  2. [スタート] メニューで [Visual Studio 2005] アイコンを右クリックし、[管理者として実行] をクリックすることによって、Visual Studio を管理者モードで起動します。 この操作を実行しない場合、Visual Studio はフィルター処理された UAC トークンを受け取るので、デバッグを実行できません。
  3. IIS 7 アプリケーション用に IIS Windows 認証をインストールして有効にします。または、KB 937523 の修正プログラムをインストールして、デバッグで Windows 認証が要求されないようにすることもできます。

注: [ファイル システム] オプションを使用して ASP.NET アプリケーションを開いている場合、Visual Studio の既定では、アプリケーションをホストするために ASP.NET 開発サーバーが起動されます。このオプションでは、IIS 7 は使用されないので、アプリケーションをデバッグするために管理者である必要はありません。ただし、ASP.NET 開発サーバーを使用する場合、IIS 7 環境で提供されるすべての機能やサービスを使用することができず、IIS 7 で展開した場合とアプリケーションの動作が異なる可能性があります。これには以下の点が含まれます。

  • ASP.NET 統合モードがサポートされません。
  • IIS 7 の圧縮、ネイティブ URL 認証、要求フィルターなどの機能がサポートされません。
  • PHP、ASP、CGI などの、ASP.NET 以外のアプリケーション テクノロジーがサポートされません。

F5 キーを使用した Visual Studio でのリモート IIS 7 Web アプリケーションのデバッグ

F5 キーを使用して、リモート サーバーで実行されている IIS 7 Web アプリケーションをデバッグできます。この手順は、前述のローカル IIS 7 アプリケーションのデバッグの場合と似ていますが、リモート デバッグを実行できるようにするための追加の構成が必要になります。

さらに、この記事の「Visual Studio 2005 とリモート IIS 7 サーバーの使用」で説明したように、[ファイル システム]、[FTP サイト]、または [リモート サイト] オプションを使用して、リモート IIS 7 Web サイトまたはアプリケーション プロジェクトを開く必要があります。

リモート アプリケーションを正常にデバッグするには、次の要件も満たしている必要があります。

  1. サーバー コンピューターにリモート デバッグ コンポーネントをインストールします。詳細については、「方法: リモート デバッグをセットアップする」を参照してください。

  2. サーバー コンピューターでリモート デバッグ モニター (msvsmon.exe) を実行します。リモート デバッグ モニターを正しく実行する方法については、「注」を参照してください。

  3. リモート デバッグ用に必要なファイアウォール ポートを開きます。

    リモート コンピューターで初めて msvsmon.exe を実行するときに、ポートが開いていない場合は警告が表示され、自動でポートを開くオプションが示されます。ファイアウォールを手動で構成する場合や、開いているポートを確認する場合は、「方法: リモート デバッグを行うために Windows Vista ファイアウォールを手動で構成する」を参照してください。

    注: Windows Vista および Windows Server 2008 では、msvsmon.exe でファイアウォールを開くことができない場合があります。この場合、[リモート デバッグのファイアウォールの構成] ダイアログ ボックスの [... リモート デバッグを制限しない] オプションのいずれかを選択すると、次のようなエラー ダイアログ ボックスが表示されます。このエラーが表示された場合は、「方法: リモート デバッグを行うために Windows Vista ファイアウォールを手動で構成する」の説明に従って手動でファイアウォール規則を作成します。

    Ff454098.VSDebugMonitor-FirewallFailure(ja-jp,TechNet.10).jpg

  4. Web アプリケーション プロジェクトを使用して、リモート IIS 7 サーバーに発行している場合や、[ファイル システム] または [FTP サイト] オプションを使用してリモート Web サイト プロジェクトを開いている場合は、デバッグを有効にするように、Visual Studio プロジェクトの開始オプションを構成する必要があります。

    Web サイト プロジェクトについてこれを実行するには、Web サイト プロジェクト ノードを右クリックし、[開始オプション] をクリックます。表示されたダイアログ ボックスで、[カスタム サーバーを使用する] をクリックし、リモート サーバー上の Web アプリケーションのベース URL を入力します。

    Web アプリケーション プロジェクトの場合は、プロジェクト ノードを右クリックし、[プロパティ] をクリックし、[Web] タブをクリックします。[Web] タブで [IIS Web サーバーの使用] をクリックし、リモート サーバー上の Web アプリケーションのベース URL を入力します。

    この手順の詳細については、この記事で既に説明しました。

  5. デバッグを実行できるようにアクセス許可を構成します。この手順を正しく実行する方法については、「注」を参照してください。

    リモート デバッグ モニター (msvsmon.exe) を実行し、アクセス許可を構成する方法は、ドメイン環境とワークグループ環境のどちらで作業しているかによって異なります。

    ワークグループ環境でリモート デバッグをセットアップするには

  1. Visual Studio 2005 クライアント コンピューターとリモート サーバー コンピューターの両方で同じユーザー名とパスワードを使用してアカウントを作成します。このアカウントには、リモート サーバー コンピューター上で管理者権限が設定されている必要があります。

    : アプリケーションで Windows 認証を使用している場合、このアカウントはビルトイン Administrator アカウントである必要があります。つまり、両方のコンピューターでビルトイン Administrator アカウントのパスワードが同じであることが必要です。

  2. 手順 1. で作成したアカウントを使用してリモート サーバー コンピューターにログオンし、[スタート] メニューで [Visual Studio 2005 リモート デバッガ] を右クリックし、[管理者として実行] をクリックして、リモート デバッガーを実行します。

    この手順は重要です。この手順を実行しないと、リモート デバッグ モニターは UAC フィルター処理されたトークンを受け取り、IIS ワーカー プロセスをデバッグできません。

    : RunAs.exe コマンドを使用して msvsmon.exe プロセスを実行しないでください。このようにすると、常に UAC フィルター処理されたトークンが渡されるので、デバッグを実行できません**。

    [スタート] メニューから Visual Studio 2005 リモート デバッガ構成ウィザードを開くことによって、リモート デバッグ モニターを実行することもできます。このオプションを使用する場合、手順 1. で作成したアカウントを使用してログオンするように、リモート デバッグ モニターを構成する必要があります。また、コンピューターのローカル セキュリティ ポリシー コンソールで、対応するアカウントに [サービスとしてログオン] 権限を付与する必要があります。

  3. 手順 1. で作成したアカウントを使用して Visual Studio 2005 クライアント コンピューターにログオンします。[スタート] メニューで [Visual Studio 2005] のアイコンを右クリックし、[管理者として実行] をクリックして Visual Studio 2005 を実行します。

    : Visual Studio を実行するときには、手順 1. で作成したアカウントを使用することと、[管理者として実行] オプションを使用することが非常に重要です。手順 1. で説明したように、使用するアカウントはリモート サーバー コンピューターの管理者権限を持つユーザーである必要があります。

  4. リモート IIS 7 Web サイトを ([ファイル システム]、[FTP サイト]、または [リモート サイト] オプションを使用して) 開きます。

    IIS 7 Web サイトで Windows 認証を使用している場合は、ビルトイン Administrator アカウントを使用して Visual Studio 2005 を実行している必要があり、そのため、リモート デバッグ モニターもリモート コンピューター上でビルトイン Administrator アカウントを使用して実行している必要があります。Administrator アカウントのパスワードは、クライアント コンピューターとリモート サーバー コンピューターで同じである必要があります。

    さらに、次の作業を実行できます。

  • [FTP サイト] オプションを使用して、リモート IIS 7 Web サイトに接続し、匿名認証を使用できます。この場合、使用しているアカウントがリモート サーバー コンピューター上の管理ユーザーである限り、ビルトイン Administrator アカウントを使用する必要はありません。

  • [リモート サイト] オプションを使用して、リモート IIS 7 Web サイトに接続し、基本認証またはダイジェスト認証を使用できます。この場合、使用しているアカウントがリモート サーバー コンピューター上の管理ユーザーである限り、ビルトイン Administrator アカウントを使用する必要はありません。

IIS 7 Web サイトで Windows 認証を使用する必要がない場合や、同期した Administrator アカウントを使用できない場合は、デバッグを実行する前に、リモート サーバー コンピューターで UAC を無効にして再起動する必要があります。サーバーのセキュリティに悪影響を及ぼす可能性があるので、運用サーバーではこの方法はお勧めできません。

ドメイン環境でリモート デバッグをセットアップするには

ドメイン環境でのデバッグは構成が容易です。ドメイン環境でデバッグするには、次の作業を行う必要があります。

  1. Visual Studio 2005 を実行するために使用するドメイン アカウントを、リモート サーバー コンピューター上の Administrators グループのメンバーにします。

  2. ドメイン アカウントを使用してリモート サーバー コンピューターにログオンし、[管理者として実行] オプションを使用して、リモート デバッグ モニター (msvsmon.exe) を実行します。

  3. [スタート] メニューの [Visual Studio 2005 リモート デバッガ構成ウィザード] を右クリックし、[管理者として実行] をクリックして、リモート デバッグ モニターをサービスとして実行することもできます。リモート デバッグ モニターを LocalSystem として実行することができます。

  4. ドメイン アカウントを使用して Visual Studio 2005 クライアント コンピューターにログオンします。[スタート] メニューで [Visual Studio 2005] のアイコンを右クリックし、[管理者として実行] をクリックして Visual Studio 2005 を実行します。

  5. [FTP サイト] または [リモート サイト] オプションを使用して、リモート IIS 7 Web サイトを開きます。

まとめ

ここでは、Visual Studio 2005 を使用して、ローカル コンピューターおよびリモート コンピューター上にある IIS 7 Web サイトを操作する方法と、IIS 7 でホストされる Web アプリケーションをデバッグする方法について説明しました。