グローバルASAXOnErrorハンドラーに送信されたエラーが発生したことを理解しようとしています。
using System;
using System.Web;
namespace GLSS.Components.HttpModules
{
public class ExceptionModule : System.Web.IHttpModule
{
private void OnError(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
//get the last error
Exception ex = context.Server.GetLastError();
if(ex.InnerException.GetType().ToString() == "CSLA.DataPortalException")
ex = ex.InnerException;
これが私の例外を文字列に変換したものです
HttpContext.Current.Server.GetLastError().Message
"File does not exist."
HttpContext.Current.Server.GetLastError().StackTrace
" at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)"
このエラーの原因となっているコード行を特定するにはどうすればよいですか?エラーが発生したときにデバッグオプションを中断するように設定しようとしましたが、失敗しました。それでも、ONERRORグローバルハンドラーが表示されます。
1つは、コードが内部例外があると想定していることです。これはNULLのように見え、ハンドラー内で2番目のエラーを引き起こしています。
コンパイルされたコードのどこかでエラーが発生していると思います。Web.Configを確認しましたが、そこに記載されているパスはログパスのみであり、それは有効であり、ログは機能しているようです。
更新 私はここでいくつかの追加情報を見つけました:
例外「ファイルが存在しません」を解決するにはどうすればよいですか?
イミディエイトウィンドウでこれを確認すると、次のようになります。
? HttpContext.Current.Request.Url.ToString()
"http://localhost:2322/favicon.ico"
しかし、私が困惑しているのは、「ファイル内検索」を使用してfavicon.icoを探してソリューション全体を検索し、参照が表示されないことです。
アイコンファイルへの参照が表示されないのに、アイコンファイルが見つからないというエラーが表示されるのはなぜですか?いくつかのアセンブリがそれを使用していると思いますか?しかし、なぜそれがWebルートでそれを探しているのでしょうか。