次の方法で共有


Visual Studio 2008 と IIS 7 の使用

作成者: Mike Volodarsky

はじめに

Visual Studio® には、Web サイトとアプリケーションを開発するときに IIS を操作するためのオプションがいくつか用意されています。 これには、Web アプリケーションと Web サイト プロジェクトが含まれます。 Visual Studio 2008 では、これらの機能に待望のアップグレードが実施され、Windows Vista® および Windows Server® 2008 で IIS 7 以降が適切にサポートされるようになりました。 また、最近リリースされた Web 配置プロジェクト 2008 でも IIS 7 以降がサポートされます。

この記事では、Visual Studio 2008 Web 開発機能で IIS を使用する方法の概要について、機能を正常に動作させるために必要な手順を含めて説明します。

前提条件

Visual Studio 2008 を使用して、Web サイトとローカル コンピューター上のアプリケーションと連携するには、次の操作を行います。

  1. IIS 7 以降をインストールします。

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

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

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

    インターネット インフォメーション サービス、I S メタ ベース、I S 6 構成の互換性、および強調表示された S P ドット NET を含む Windows 機能のスクリーンショット。

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

    Visual Studio 2008 を使用してリモート マシン上の Web サイトとアプリケーションを操作するには、この記事で後述する「リモート IIS サーバーでの Visual Studio 2008 の使用」セクションを参照してください。

管理者としての Visual Studio 2008 の起動

ローカル IIS アプリケーションのデバッグや作成など、特定のタスクでは、管理者特権を持つユーザーとして Visual Studio を起動する必要があります。 これには、Windows Vista で、またはあらかじめ登録された Administrator アカウントとして実行されていない場合は Windows Server 2008 で、[スタート] メニューの [Visual Studio 2008] アイコンを右クリックして [管理者として実行] を選択する必要があります。

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

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

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

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

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

2 つのモデルの詳しい説明とそれぞれの違いは、https://msdn.microsoft.com/library/aa730880(VS.80).aspx で確認できます。

Note

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

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

  1. Visual Studio の [ファイル] メニューの [新しいプロジェクト] を選択し、ASP.NET Web アプリケーション テンプレートを選択します。
  2. OK をクリックします。 Visual Studio が開いて Default.aspx ページの [ソース] ビューが表示されて編集できるようになります。

Note

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

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

  1. IIS マネージャー、AppCmd、別の構成ツールを使用して IIS Web サイトを作成します。 詳細については、https://technet.microsoft.com/library/cc772350(v=ws.10).aspxを参照してください。 または、既存の IIS Web サイトを使用します。

  2. Visual Studio で、[ビルド] \ [発行] オプションを使用して、Web アプリケーションのコンテンツを IIS Web サイトに発行します。
    [ターゲットの場所] フィールドを含む [Web の発行] ダイアログ ボックスのスクリーンショット。[アプリ ダッシュ データ フォルダーからファイルを含める] オプションが選択されています。

    Note

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

    [...] ボタンをクリックすると、Web サイトを公開するための 4 つのオプションのいずれかを選択できます。

    • [ファイル システム]。 このオプションを使用すると、Visual Studio は Web アプリケーションをフォルダーとして開いて作成し、組み込みの ASP.NET 開発サーバーを使用して Web サイトをホストします。 このオプションは、ASP.NET アプリケーションの基本的なテストには十分である可能性があります。ただし、このモードでは統合モードでの ASP.NET アプリケーションの実行はサポートされず、ASP.NET 以外のアプリケーション テクノロジ (PHP、ASP、CGI など) はサポートされません。
    • [ローカル IIS]。 このオプションを使用する場合、Visual Studio でローカルの IIS Web サイトまたはアプリケーションにアプリケーション ファイルを発行できます。 ダイアログを使用して、ファイルを発行する新しい IIS アプリケーションまたは仮想ディレクトリを作成することもできます。
    • [FTP サイト]。 このオプションを使用すると、Visual Studio では、アプリケーション ファイルが FTP 経由で共有されている場合に編集がサポートされます。 プロジェクトの開始設定でアプリケーションの URL を構成することで、Visual Studio を使用してアプリケーションをデバッグできます。 詳細については、この記事で後述する「リモート IIS サーバーでの Visual Studio 2008 の使用」セクションを参照してください。
    • [リモート サイト]。 このオプションを使用すると、Visual Studio でリモート IIS サーバーに接続できます。 このオプションを使用するには、リモート サーバーに FrontPage Server Extensions をインストールし、FPSE を使用するように Web サイトを構成する必要があります。 この詳細については、この記事で後述する「リモート IIS サーバーでの Visual Studio 2008 の使用」セクションを参照してください。
  3. [ローカル IIS] を選択します。 Web アプリケーション プロジェクト ディレクトリをローカル IIS インストールの仮想ディレクトリとしてマップすることもできます。プロジェクトの [プロパティ] を開き、[Web] タブをクリックし、[仮想ディレクトリの作成] ボタンをクリックします。 [仮想ディレクトリの作成] オプションを使用すると、[Web を公開] オプションを使用せずに Web アプリケーションをローカルの IIS で簡単にホストできます。 ただし、このオプションは、すべてのプロジェクト ファイル、ソース ファイル、オブジェクト ファイル、その他の一時ファイルを IIS 仮想ディレクトリの使用可能な名前空間に配置するため、一般的には推奨されません。これにより、セキュリティ上のリスクが生じる可能性があります。 [公開] オプションを使用すると、既定で、プロジェクトの Web で提供可能な部分のみが公開されるため、この方法をお勧めします。

  4. デバッグを構成します。 既定では、Web アプリケーション プロジェクト モデルを使用して作成されたプロジェクトは、プロジェクトのテストまたはデバッグ時に組み込みの ASP.NET 開発サーバー ("Cassini") を使用します。 これにより、IIS を使用せずに ASP.NET アプリケーションをテストする便利な方法が提供されます。ただし、IIS 環境を使用してアプリケーションをテストするように Visual Studio を構成することをお勧めします。 これには次の理由があります。

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

Windows Vista で開発している場合は、IIS を利用して、展開時と同じ環境を使用してアプリケーションをローカルでテストできます。この記事で前述したように、[仮想ディレクトリの作成] オプションまたは [Web を公開] ダイアログを使用します。

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

このような場合は、IIS 環境でアプリケーションをデバッグするように Visual Studio を構成できます。 これを行うには、プロジェクト ノードを右クリックし、[プロパティ] を選択して、[Web] タブをクリックします。[Web] タブで、[ローカル IIS Web サーバーの使用] オプションを選択します。 Web アプリケーションのベース URL は自動的に事前設定されます。

[Web] タブが展開された [Use I I S Web server]\(I I S Web サーバーの使用\) オプションが選択され、[Project you are l]\(プロジェクトは l\) ボックスに入力されている l アドレスが表示されているプロジェクト ノードのスクリーンショット。

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

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

  1. IIS マネージャー、AppCmd、別の構成ツールを使用して IIS Web サイトを作成します。 詳細については、https://technet.microsoft.com/library/cc772350(v=ws.10).aspxを参照してください。 または、既存の IIS Web サイトを使用します。

  2. Visual Studio の [ファイル] メニューの [新しい Web サイト] を選択し、作成した IIS Web サイトを使用して新しい Web サイト プロジェクトを作成します。

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

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

  5. OK をクリックします。 Visual Studio が開いて Default.aspx ページの [ソース] ビューが表示されて編集できるようになります。

    または、新しい Web サイト プロジェクトをローカル ファイル システムに配置して、ASP.NET 開発サーバーでの使用、FTP を使用したリモート サーバーへのアップロード、FrontPage Server Extensions を使用したリモート IIS サーバーへのアップロードを行えます。 リモート サーバーへの接続の詳細については、この記事で後述する「リモート IIS サーバーでの Visual Studio 2008 の使用」セクションを参照してください。

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

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

  1. 既存の IIS Web サイトを開くには、Visual Studio の [ファイル] メニューの [Web サイトを開く] を選択します。

  2. [ローカル IIS] をクリックして、ローカル IIS サーバーを選択します。

    結果のダイアログで、開く Web サイトまたは子アプリケーションを選択できます。 または、ダイアログ ボックスの右上隅にある [新しい Web アプリケーションの作成][新しい仮想ディレクトリの作成][削除] ボタンを使用して、Web サイト階層を管理できます。

    Note

    変更を行う前に、必ず最初に構成をバックアップしてください。

    既定の Web サイトが選択された [ローカル Web サーバー] ウィンドウを示す [ローカル インターネット インフォメーション サーバー] ダイアログ ボックスのスクリーンショット。

  3. 開く をクリックします。

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

    必要なコンポーネントをインストールするように指示するメッセージが表示されている [ローカル インターネット インフォメーション サーバー] ダイアログ ボックスのスクリーンショット。

    Note

    Visual Studio には、既存の IIS Web サイトに接続するだけでなく、既存の Web サイトを操作するためのさまざまなオプションが用意されています。 設定できるオプションは次のとおりです。

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

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

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

    これを行うには、Visual Studio の Web サイト プロジェクト ノードを右クリックし、[開始オプション] を選択します。 ダイアログで、[カスタム サーバーの使用] オプションを選択し、リモート サーバー上の Web アプリケーションのベース URL を入力します。

    [サーバー セクション] の [カスタム サーバーの使用] オプションが選択されていることを示す [スタート オプション] ダイアログ ボックスのスクリーンショット。

リモート IIS サーバーでの Visual Studio 2008 の使用

既存の Web サイトを開いたり、リモート IIS サーバーに新しい Web サイトを作成したりするには、前述のオプションの多くを使用できます。

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

FTP を使用して IIS Web サイトに接続する

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

Note

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

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

サーバー、ポート、ディレクトリ、ログオン資格情報のフィールドを示す [F T P サイト] ダイアログ ボックスのスクリーンショット。

Windows Vista および Windows Server 2008 に含まれる FTP サーバーの使用の詳細については、FTP サイトのセットアップ (IIS 6.0) の説明を参照してください。 IIS.NET からダウンロードできる新しい FTP 7 を使用するには、「Web サイトへの FTP の追加」を参照してください。 Windows Server 2008 R2 を使用している場合は、新しいバージョンの FTP (FTP 7.5) が既に含まれています。

FrontPage Server Extensions を使用して IIS Web サイトに接続する

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

IIS 7 の FrontPage Server Extensions は、Windows Vista および Windows Server 2008 の無料ダウンロードとして利用できます。 IIS Web サイトの FrontPage Server Extensions のインストールと有効化の詳細については、「IIS 用 FrontPage Server Extensions のインストール」を参照してください。

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

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

  2. 接続する IIS Web サイトを作成します (省略可能、サイトがまだ存在しない場合に実施)。

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

    Note

    基本認証を使用する場合、ユーザー名とパスワードはクリア テキストで送信されるため、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 サイトを開く] ダイアログまたは [新しいサイト] ダイアログの [リモート サイト] オプションを使用してサイトに接続します。 これにより、既存の FrontPage Server Extensions 対応 Web サイトに接続したり、新しい Web アプリケーションと仮想ディレクトリを作成したりできます。

    [Web サイトの場所] と [新しい Web サイト] ボタンのフィールドが表示されている [リモート サイト] ダイアログ ボックスのスクリーンショット。

    接続中に次のエラー ダイアログが表示される場合は、リモート サーバーに FPSE がインストールされていることと、接続先の Web サイトに対して FPSE 管理が有効になっていることを再確認します。

    Microsoft Visual Studio の [エラー] ダイアログのスクリーンショット。このメッセージは、Web サーバーにフロント ページ サーバー拡張機能がインストールされていないように見えるというメッセージです。

    FPSE 対応 Web サイトに Windows 認証を使用している場合、Visual Studio は、開始に使用したアカウントで認証を試みます。 この認証が失敗した場合は、リモート サーバーで認証するための資格情報を指定するように求められます。

    基本認証を使用している場合、Visual Studio によって資格情報の入力がすぐに求められます。

    Note

    基本認証では資格情報がクリア テキストで送信されるため、サイトが SSL で保護されていない場合は、ユーザー名とパスワードが意図せず開示される可能性があります。 このため、イントラネット環境では Windows 認証を使用し、インターネット環境では SSL 経由の基本認証を使用することをお勧めします

    適切な認証方法 (Windows 認証、基本認証、ダイジェスト認証) を有効にしていない場合は、接続時に次のエラー ダイアログが表示されます。 これを解決するには、上記のいずれかの認証方法を有効にします。

    Web サーバーで認証方法が有効になっていないことを示すエラー ダイアログのスクリーンショット。

    Note

    [リモート サイト] ダイアログの [新しい Web サイト...] ボタンを使用して新しい IIS Web サイトを作成することはできません。 代わりに、既存の FrontPage Server Extensions 対応 IIS Web サイトへの指定したパスを持つ新しい Web アプリケーションを作成するために使用されます。

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

Visual Studio で Web サイトまたはアプリケーションを開いた後は、Visual Studio のデバッグ機能を利用してテストできます。 その際、次のオプションがあります。

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

F5 キーを使用して Visual Studio からローカル IIS Web アプリケーションをデバッグする

F5 デバッグでは、Visual Studio を使用して Web アプリケーションをデバッグするための最も便利な方法が提供されます。 これを使用するには、次の操作を行います。

  1. 前に説明したオプションのいずれかを使用して IIS Web サイトを開きます。
  2. 最初の要求を行うプロジェクト ファイルを選択します (省略可能)。
  3. アプリケーションのソース コードで目的のブレークポイントを設定します (省略可能、デバッグ中に設定することもできます)。
  4. F5 キーを押してデバッグを開始します。 Visual Studio は、IIS Web アプリケーションに対して最初の要求を行い、ホストしている IIS ワーカー プロセスに接続して、新しいブラウザー ウィンドウを開きます。ここから、アプリケーションを操作できます。

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

  1. ローカル コンピューターの管理者特権を持つユーザー (あらかじめ登録された Administrator アカウント、またはあらかじめ登録された Administrators グループのメンバーであるアカウント) としてログオンします。

  2. [スタート] メニューの Visual Studio 2008 アイコンを右クリックし、[管理者として実行] を選択して、管理者モードで Visual Studio を起動します。

    これを行わない場合、Visual Studio はフィルター処理された UAC トークンを受け取り、デバッグできません。

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

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

F5 キーを使用して Visual Studio からリモート IIS Web アプリケーションをデバッグする

F5 キーを使用して、リモート サーバーで実行されている IIS Web アプリケーションをデバッグできます。 このプロセスは、ローカル IIS アプリケーションをデバッグするために前に説明した内容と似ていますが、リモート デバッグを実行するために追加の構成が必要です。

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

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

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

  2. サーバー コンピューターでリモート デバッグ モニター (msvsmon.exe) を実行します。 これを正しく行う方法に関するその他の注意事項を参照してください。

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

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

  4. Web アプリケーション プロジェクトを使用してリモート IIS サーバーに公開している場合や、[ファイル システム] または [FTP サイト] オプションを使用してリモート Web サイト プロジェクトを開いた場合は、デバッグを有効にするために Visual Studio プロジェクトの開始オプションを構成する必要があります。 Web サイト プロジェクトに対してこれを行うには、Web サイト プロジェクト ノードを右クリックし、[開始オプション] を選択します。 ダイアログで、[カスタム サーバーの使用] オプションを選択し、リモート サーバー上の Web アプリケーションのベース URL を入力します。

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

    このプロセスについては、この記事の前半で詳しく説明しています。

  5. デバッグを実行できるようにアクセス許可を構成します。 これを正しく行う方法に関するその他の注意事項を参照してください。

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

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

  1. Visual Studio 2008 クライアント コンピューターとリモート サーバー コンピューターの両方で、同じユーザー名とパスワードを持つアカウントを作成します。 このアカウントには、リモート サーバー コンピューターに対する管理者権限が必要です。

    Note

    アプリケーションで Windows 認証を使用している場合、このアカウントはあらかじめ登録された Administrator アカウントである必要があります。 つまり、あらかじめ登録された Administrator アカウントは、両方のコンピューターで同じパスワードを持っている必要があります。

  2. 手順 1 で作成したアカウントを使用してリモート サーバー コンピューターにログオンし、[スタート] メニューで Visual Studio 2008 リモート デバッガーを右クリックして [管理者として実行] を選択して Visual Studio 2008 リモート デバッガーを実行します。 このように実行しないと、リモート デバッグ モニターは UAC でフィルター処理されたトークンを受け取り、IIS ワーカー プロセスをデバッグできないため、これは重要です。

    Note

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

    [スタート] メニューから Visual Studio 2008 の [リモート デバッガー構成ウィザード] を開いて、リモート デバッグ モニターをサービスとして実行することもできます。 ([スタート][すべてのプログラム][Microsoft Visual Studio 2008] の順に選択して、[Visual Studio Tools] フォルダー内で見つかります)。 このオプションを使用する場合は、手順 1 で作成したアカウントを使用してログオンするようにリモート デバッグ モニターを構成する必要があります。 その後、対応するアカウントに、コンピューターのローカル セキュリティ ポリシー コンソールで "サービスとしてログオン" 権限を付与する必要もあります。

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

    Note

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

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

IIS Web サイトで Windows 認証を使用している場合は、あらかじめ登録された Administrator アカウントを使用して Visual Studio 2008 を実行し、また、リモート コンピューターでも、あらかじめ登録された Administrator アカウントを使用してリモート デバッグ モニターを実行する必要があります。 管理者アカウントのパスワードは、クライアント コンピューターとリモート サーバー コンピューターで同じである必要があります。

さらに、次の操作を行うことができます。

  • FTP サイト オプションを使用してリモート IIS Web サイトに接続し、匿名認証を使用します。 その場合、使用しているアカウントがリモート サーバー コンピューターの管理ユーザーである限り、あらかじめ登録された Administrator アカウントを使用する必要はありません。
  • リモート サイト オプションを使用してリモート IIS Web サイトに接続し、基本認証またはダイジェスト認証を使用します。 その場合、使用しているアカウントがリモート サーバー コンピューターの管理ユーザーである限り、あらかじめ登録された Administrator アカウントを使用する必要はありません。

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

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

ドメイン環境でのデバッグは、構成が簡単です。 ドメイン環境でデバッグするには、次の手順を実行する必要があります。

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

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

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

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

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

まとめ

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