ASP.NET ページで Server.Transfer または Server.Execute を使用すると「子の要求を実行中にエラーが発生しました」エラーが発生する

この記事では、ASP.NET ページから インターネット インフォメーション サービス (IIS) の Active Server Pages (ASP) ページにコントロールを転送するときにエラー (子の要求を実行中にエラーが発生しました) が発生する問題を解決するのに役立ちます。

元の製品バージョン: ASP.NET
元の KB 番号: 320439

現象

ASP.NET ページで Server.Transfer または Server.Execute メソッドを使用して、ASP.NET ページから ASP ページにコントロールを転送しようとすると、次のエラー メッセージが表示される場合があります。

PageName.asp の子の要求を実行中にエラーが発生しました。

エラー メッセージの PageName.asp は、ASP ページの名前です。

原因

IIS は、要求ファイルの拡張子に基づいて、Server.Transfer または Server.Execute 要求を適切なインターネット サーバー アプリケーション プログラミング インターフェイス (ISAPI) 拡張子にディスパッチします。 たとえば、.aspx ページの要求は、Aspnet_isapi.dll ISAPI 拡張子にディスパッチされます。

要求が適切な ISAPI 拡張子にディスパッチされた後、ISAPI 拡張子は別の ISAPI 拡張子を呼び出すことができません。 ASP.NET ページへの要求を処理する Aspnet_isapi.dll ファイルは、ASP ページへの要求を処理する Asp.dll ファイルに要求を転送できないため、「現象」セクションに記載されているエラー メッセージが表示されます。

解決方法

この問題を解決するには、Response.Redirect メソッドを使用して、要求を ASP.NET ページから ASP ページにリダイレクトします。

状態

この動作は仕様です。