web-dev-qa-db-ja.com

クラシックASP Azure上のWebサイト "内部サーバーエラーが発生したため、ページを表示できません。"

クラシックASPで記述されたアプリケーションをAzure Webサイト(共有)に移行しました。一部のページで、「内部サーバーエラーが発生したため、ページを表示できません。」というエラーが表示されるだけです。詳細はありません。これらのページはIIS 7の下で正常に機能するか、IIS express。

他のいくつかの投稿で示唆されているように、AzureのWebサイトに対して次のように構成しました。

1)Webサーバーのロギング-オン
2)詳細なエラーメッセージ-オン
3)Web.config-customErrorsモードをオフにします。

<customErrors mode="Off"/>
 <compilation debug="true" targetFramework="4.0">

それでも、ログメッセージは何が問題であるかについての詳細を提供せず、単に次の情報を提供します。

詳細なエラー情報:

モジュールIsapiModule
通知ExecuteRequestHandler
ハンドラASPClassic
エラーコード0x00000000

Azure Webサイトの従来のASPページの問題をデバッグする方法を教えてください。ありがとうございました。

9
VVee
  1. 問題はブラウザ側にある可能性があります:IE「フレンドリーなメッセージを表示する」設定がオフになっていることを確認してください
    enter image description here

  2. また、サーバー側では、エラーメッセージをクライアントに送信できるようにするための設定が必要です(申し訳ありませんが、IIS設定のフレーバーのみにアクセスできます... Azureで):
    enter image description here

1
G. Stoynev

G.ストイネフありがとう!カスタムエラーaspページを追加した後に動作しました!次のリンクのコードを使用してカスタムエラーASPページを作成しました

http://support.Microsoft.com/kb/22407

また、次のリンクも役に立ちました http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/

これで、web.configのsystem.webServerセクションは次のようになります。

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
    <httpErrors> 
     <remove statusCode="500" subStatusCode="100" />
     <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/errors.asp" responseMode="ExecuteURL" /> 
   </httpErrors> 
  </system.webServer>
11
VVee

試してみる(奇妙な)ことの1つは、私にとってはうまくいきました:

Azure WebサイトにFTPで接続して、web.configの名前をまったく別の名前に変更します。

私の名前をweb.config2に変更しました-Azure "The page cannot be displayed because an internal server error has occurred."エラーメッセージが表示されなくなり、ASP.Netアプリケーションが再び起動しました。

そこから、web.configを最初から再作成し、元のバージョンからそのチャンクを少しずつコピーしました(問題の原因を確認するため)。

ええ、私は知っています...それは馬鹿げた提案ですが、Azureは、ログをオンにしても、エラーの原因について何のヒントも与えてくれませんでした。

7
Mike Gledhill

詳細なエラーメッセージをブラウザに送信するには、以下のようにscriptErrorSentToBrowser属性を有効にする必要があります。

  <system.webServer>
       <asp scriptErrorSentToBrowser="true" />
  </system.webServer>

言うまでもありませんが、これは潜在的なセキュリティリスクになる可能性があるため、有効にしたままにしないでください。

0
David Lindon

Azure Webアプリ構成のLogging => Diagnosticsログでアプリケーションログをオンにすることで解決しました。

その後、[ログストリーム]ペインでエラーを確認して修正できます。

私の場合、次の2行がweb.config

<add name="ExtensionlessUrlHandler-Integrated-4.0" 
 path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" 
 preCondition="integratedMode,runtimeVersionv4.0"/>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>

私はそれらを削除し、それは再び働いた。

0
user8862383

Azure Webアプリなど、IISにアクセスできないサイトを構成しようとしている場合は、Classic ASP設定をWeb.Configで構成できます。

<system.webServer>

あなたは置くことができます

<asp>

classicの動作方法でさまざまなものを構成する要素。

私のサイトに影響を与えていたプロパティは

**appAllowDebugging="true"**

このプロパティは、Visual Studioを使用して開発し、Just-In-Timeデバッガーをインストールしている場合は問題なくうまく動作しますが、Classic Aspのエラー処理を混乱させます。

ところで、私が何を変えたかを理解するのに私を永遠に連れて行きました。

0
LarryBud