1

エラーを処理するための次のコードがあります

Application_Error の Global.asax.cs

Exception exception = Server.GetLastError();
if (exception != null)
{
    //Log the error
}

ただし、web.config からだけでなく、上記にもリダイレクトするカスタム エラー ページもあります。

したがって、Page_Load のエラー ページには、このコードがあります

Exception exception = Server.GetLastError();                
string exInnerExp = "";
if (exception != null)
{
    exInnerExp = exception.InnerException.ToString();
    //Log error
}

これは決して機能しませんか?理由はわかりませんが、これに関するヘルプは大歓迎です。

ありがとう

EDIT 私のweb.configには、次のコードがあります:

<customErrors mode="RemoteOnly">
   <error redirect="http://www.example.com/errorpages/404.aspx" statusCode="404" />
   <error redirect="http://www.example.com/errorpages/siteerror.aspx" statusCode="500" />
</customErrors>

としても

<httpErrors>
   <remove statusCode="500" subStatusCode="-1" />
   <remove statusCode="404" subStatusCode="-1" />
   <error statusCode="404" prefixLanguageFilePath="" path="/errorpages/404.aspx" responseMode="ExecuteURL" />
   <error statusCode="500" prefixLanguageFilePath="" path="/errorpages/siteerror.aspx" responseMode="ExecuteURL" />
    </httpErrors>

編集

最初は、Application_Error がヒットしていないと思っていましたが、Server.GetLastError() が null でない場合にのみ実際に実行されていたコードを見つけました。だから今、私の問題は少し変わりました.Server.GetLastError()はApplication_Errorイベントでnullです。これが発生する可能性のある場所の例:

UserControl に移動して asp:TextBox の ID を変更すると、ページが読み込まれずにエラーが発生し、このエラーはキャッチされません。

4

0 に答える 0