2009-08-06 11 views
4

曖昧なタイトルは申し訳ありませんが、私はこの問題を簡単に説明することはできません。IIS7は断続的に500エラーを投げています。誰かがそれを診断するのを助けることができますか?

基本的に私はWindows Server 2008 x64、IIS7、ASP.NET 2.05を持っていて、Classicで実行中のサイトを持っています。 AppPool(そして、統合では実行できません)。

私はこのエラーを取得する(など、サーバーを再起動する、つまりサイトをインストールした後)初めて* .aspxのファイルをロードしようとしている:

HTTP Error 500.0 - Internal Server Error
The page cannot be displayed because an internal server error has occurred.
Module: IsapiModule
Notification: ExecuteRequestHandler
Handler: PageHandlerFactory-ISAPI-2.0-64
Error Code: 0x800710dd
Logon Method: Anonymous
Logon User: Anonymous

ハンドラは、デフォルトのIIS7いずれかになります。

<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> 


私も、このように見えたのaspxのために私自身のハンドラに追加してみました:

<add name="aspx" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> 

エラー通知のHandler部分をIsapiModuleと変更するだけでした。

このエラーは初めて発生する(またはサーバーが何時間もアイドル状態になっている)場合にのみ発生します。このエラーが表示されるとすぐに、ページを更新すると、すべてうまくやっています。

私はweb.configファイルを削除しようとしても、それは絶対に何もしませんでした。

私はインターネット上でこの問題について1つの答えを見つけることはできないようです。

編集:私は失敗した要求の追跡を有効にして、これはそれが表示するものである:

MODULE_SET_RESPONSE_ERROR_STATUS Warning ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="500", HttpReason="Internal Server Error", HttpSubStatus="0", ErrorCode="The operation identifier is not valid. (0x800710dd)", ConfigExceptionInfo=""

そして、それは示してエラーの前に右:

NOTIFY_MODULE_START ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", fIsPostNotification="false", fIsCompletion="false"

今、私は成功にこれを比較するとき違いがあるのは、エラーがMODULE_SET_REPONSE_ERROR_STATUSを生成し、正常に実行されなかった場合(そして正しいHTML出力を生成する場合)です。

を編集します。私は簡単なアプリを使い、その実行を試みましたが、同じエラーが発生しました。しかし、アプリプールが統合モードになったとき、それはうまく実行しました!残念ながら、私は指定できない理由のために私のアプリを統合に移行することはできませんが、私はそれをアプリケーションプールに絞り込んでいます。また、エラーを再現するためにサーバーを再起動する必要はなく、代わりにアプリケーションプールをリサイクルします。

要約:
- 以下に述べるように、イベントログには、失敗を示すものは何もありません。私はイベントビューアのすべてのログを照合しました

+0

イベントログには何かがありますか? –

+0

アプリケーションがサーバー500をトリガーする可能性のあるエラーがスローされていますか? –

+0

イベントログには絶対に何もありません – encee

答えて

0

まあ、私はこれを引き起こしていたか知っているが、きれいな、私は固定それを使用したVMのインストールしないでください。ハレイ!

+1

元の質問でVM内で実行しているとは言いませんでした – Oliver

0

アプリケーションプールを起動するときに何かのような音がします。しかし、イベントビューアーに実際のエラーを記録する必要があります。あるいは、CustomErrorsをオフにしてデバッグすることもできます。問題は、実際のエラーを見て、何が起こっているのか把握する必要があることです。

+0

はい、それは問題の場所です。私はこのエラーをどこに見なければならないのか分かりません。 (500エラー以外の) – encee

+0

OhとCustomErrorsがオンになっている限り、目に見えるものは全くありません。それが私が最初にエラー情報を得た方法です。 – encee

0

ASP.NETアプリケーションの読み込みが開始されると、実行に時間がかかりすぎる可能性のあるコードが存在する可能性があります。おそらく大きすぎるアプリケーション変数またはリソースの初期化です。

最良の方法は、何らかの種類のpingモニタを設定することです。定期的にhtml urlを監視できるpingモニタをたくさん提供しています。

あなたのasp.netアプリケーションの初期化手順を見てみると、いくつかのタイムアウト値を増やすことができます!

+0

これはHello Worldアプリケーションに起こります。長い初期化プロセスがないことは間違いありません。 さらに、2番目の試行でページが正常に読み込まれます(サーバーのキャッシュとすべての一時ファイルと圧縮ファイルを削除しても) – encee

0

ASPXコードに処理されていない例外ハンドラがありますか(Global Application_Errorなど)?

例外をキャッチして、それが(可能性の高い)ASPXコードから来ている場合は、ログに記録する必要があります。

このような散発的なエラーが発生しましたが、私は現時点で根本的な原因を覚えていません。

How to: Handle Application-Level Errors

3

WebサイトのIISセクションで失敗した要求トレースを有効にすることをお勧めします。その後、より詳細な情報を提供するいくつかのフィルタを有効にすることができます。

これはIISマネージャーから実行できます。 Webサイトをクリックしてから、[機能ビュー]の[IIS]セクションで[失敗した要求トレースルール]をダブルクリックします。

ほとんどの場合、有効になっていない可能性が最も高いので、右端の列から[Edit Site Tracing]を選択します。 [有効にする]チェックボックスをオンにして、ディレクトリを書き留めます。

この画面にルールを追加するか、アプリケーションにアクセスしてそこから「失敗した要求トレースルール」IIS機能を開くことができます。

もう一度右端の列から「追加...」をクリックし、ウィザードを実行してログを設定します。

エラーを再度スローするページを読み込みます。ロギングフォルダに移動し、XMLファイルをダブルクリックします。そのディレクトリにはXSLがあります。それを消さないでください。いったん消えたら、それは再現されません。 :s変換されたXMLは、あなたが望むより多くの情報を表示します。

私が設定したカスタムエラーページが "/"の代わりに〜/を使用していることを発見すると、IISが死んでしまいました。

0

あなたのweb.configファイルにこのスクリプトを追加する必要があります。

<system.webServer> 
    <handlers> 
     <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </handlers> 

私はこのヘルプを願っています!応援

関連する問題