サーバー側のコードが処理されないため、ASP.NET ページで予期しない現象が発生する

現象

実行時に発生する現象

Microsoft ASP.NET Web アプリケーションで .aspx ページを表示すると、次の現象が発生する場合があります。

  • ブラウザに空白のページが表示されることがあります。

  • .aspx ページをダウンロードするように求めるメッセージが表示されることがあります。

一般的な動作では、.aspx ページのサーバー側のコードが処理され、その後、コードは未処理の形式で Web ブラウザに送信されることはありません。

Visual Studio .NET を使用して ASP.NET をデバッグするときに発生する現象

Microsoft Visual Studio .NET で ASP.NET アプリケーションをデバッグするときに、IDE に次のエラー メッセージが表示される場合があります。

プロジェクトを実行しようとしているときにエラーが発生しました : Web サーバーでデバッグを開始できません。サーバーは ASP.NET や ATL Server のアプリケーションのデバッグをサポートしていません。セットアップを実行して Visual Studio .NET サーバー コンポーネントをインストールしてください。既にセットアップが実行されている場合は、有効な URL が指定されていることを確認してください。



また、オンライン ドキュメントで、ASP.NET と ATL Server デバッグの項を参照することもできます。次回からこのプロジェクトの ASP.NET ページのデバッグを無効にしますか?

原因

Microsoft .NET Framework SDK (ソフトウェア開発キット) または Microsoft Visual Studio .NET をインストールすると、Microsoft インターネット インフォメーション サービス (IIS) のマッピングが作成されて、ASP.NET 用の新しいファイル名の拡張子と新しい設定が関連付けられます。



以下のいずれかの条件に該当する場合、新しい設定は適切に行われません。

  • .NET Framework SDK または Visual Studio .NET のセットアップを実行したときに、IIS がインストールされていませんでした。

  • .NET Framework SDK のセットアップまたは Visual Studio .NET のセットアップを実行した後、IIS を削除して再インストールしました。

解決方法

この問題を解決するには、ASP.NET 用のファイル名の拡張子が適切に関連付けられるように、IIS マッピングを修復します。IIS マッピングを ASP.NET 用に修復するには、次の 2 つの方法があります。



IIS マッピングを ASP.NET 用に修復するには、以下の手順に従って Aspnet_regiis.exe ユーティリティを実行します。

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。

  2. cmd と入力し、[OK] をクリックします。

  3. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    "\WindowsFolder\Microsoft.NET\Framework\VersionNumber\aspnet_regiis.exe" -i
    : WindowsFolder は、オペレーティング システムがインストールされているディレクトリ名に置き換えます。VersionNumber は、使用しているコンピュータにインストールされている .NET Framework のバージョンに置き換えます。

IIS マッピングを ASP.NET 用に修復するには、以下の手順に従って Aspnet_isapi.dll を登録する必要があります。

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。

  2. regsvr32 WindowsFolder\Microsoft.NET\Framework\VersionNumber\aspnet_isapi.dll と入力し、[OK] をクリックします。Regsvr32 から登録の結果が返されます。

状況

この動作は仕様です。

詳細

現象の再現手順

この資料に記載されている問題が発生するかどうかを確認するには、以下の手順を実行します。このテストでは、この問題に関連する一般的な現象を確認します。IIS アプリケーションのマッピング処理に関する知識がある場合は、この資料の「IIS アプリケーション マッピングの検証方法」に記載されている手順を実行して、Web サーバーの構成を確認することもできます。

  1. Visual Studio .NET を使用して ASP.NET Web アプリケーションを作成するには、以下の手順を実行します。

    1. Microsoft Visual Studio .NET を起動します。

    2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

    3. [新しいプロジェクト] ダイアログ ボックスで、[プロジェクトの種類] ボックスの一覧の [Visual C# プロジェクト] または [Visual Basic プロジェクト] のいずれかをクリックし、[テンプレート] ボックスの一覧の [ASP.NET Web アプリケーション] をクリックします。

    4. [場所] ボックスのデフォルト名 [WebApplication#] を MyWebApp に変更します。ローカル サーバーを使用している場合、サーバー名の部分は "http://localhost" のままでかまいません。その場合、[場所] ボックスには次のように表示されます。

      http://localhost/MyWebApp
  2. ソリューション エクスプローラでプロジェクト ノードを右クリックし、[追加] をポイントして、[Web フォームの追加] をクリックします。Web フォームに MappingsTest.aspx という名前を付け、[開く] をクリックします。

  3. エディタで .aspx ページを右クリックし、[コードの表示] をクリックします。Page_Load イベント ハンドラに次のコードを追加します。



    Visual C# .NET
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Write("This code was executed");
    }
    Visual Basic .NET
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Response.Write("This code was executed")
    End Sub
  4. [ファイル] メニューの [すべてを保存] をクリックし、Web フォームおよびその他の関連するプロジェクト ファイルを保存します。

  5. Visual Studio .NET IDE の [ビルド] メニューの [ソリューションのビルド] をクリックします。

  6. .aspx ページを右クリックし、[ブラウザで表示] をクリックします。

  7. マッピングが正しい場合は、ブラウザに "This code was executed" というメッセージが表示されます。マッピングが正しくない場合は、以下のいずれかの現象が発生します。

    • ブラウザに空白のページが表示されます。
    • .aspx ページをダウンロードするかどうかを確認するメッセージが表示されます。

    この現象は、サーバー側のコードが期待どおりに処理または実行されないために発生します。いずれの場合でも、未処理のソース コードが表示されます。空白のページが表示される場合、ブラウザでページを右クリックし、[ソースの表示] をクリックすると、サーバー側のコードが未処理の状態で表示されます。たとえば、Visual C# ASP.NET Web フォームでは、@ Page ディレクティブが次のように表示されます。
    <%@ Page language="c#" Codebehind="MappingsTest.aspx.cs" AutoEventWireup="false" Inherits="MyWebApp.MappingsTest" %>

IIS アプリケーション マッピングの検証方法

アプリケーションのマッピングが正しいかどうかを確認するには、以下の手順を実行します。

  1. [スタート] ボタンをクリックし、[プログラム]、[管理ツール] を順にポイントして、[インターネット サービス マネージャ] (または [インターネット インフォメーション サービス (IIS) マネージャ]) をクリックします。

  2. ローカル ホスト (コンピュータ名) に対応するノードを展開し、[既定の Web サイト] を展開します。

  3. Web アプリケーション ディレクトリを右クリックし、[プロパティ] をクリックします。

  4. [仮想ディレクトリ] (または [ディレクトリ]) タブで、[アプリケーションの設定] の [構成] をクリックします。

  5. [アプリケーションのマッピング] (または [マッピング]) タブをクリックします。

  6. [アプリケーションのマッピング] タブの [アプリケーションのマッピング] (または [マッピング] タブの [アプリケーションの拡張子]) で .aspx 拡張子が以下の DLL (ダイナミック リンク ライブラリ) にマップされているかどうかを確認します。

    C:\WindowsFolder\Microsoft.Net\Framework\VersionNumber\aspnet_isapi.dll
    : WindowsFolder は、オペレーティング システムがインストールされているディレクトリ名に置き換えます。VersionNumber は、使用しているコンピュータにインストールされている .NET Framework のバージョンに置き換えます。

  7. アプリケーションのマッピング エントリが見つからない場合は、この資料の「解決方法」に記載されている手順を実行します。

関連情報

ASP.NET 用に IIS マッピングを修復する方法は、「サポート技術情報」 (Microsoft Knowledge Base) の資料 306005 からの引用です。

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。


306005 IIS を削除して再インストールした後、IIS マッピングを修復する方法

以下の資料では、この資料に記載されているデバッグ時の現象について詳細に説明しています。

318465 [PRB] ASP.NET Web アプリケーションをデバッグできない

プロパティ

文書番号:325093 - 最終更新日: 2008/07/14 - リビジョン: 1

フィードバック