Asp.net 正在本地和主机中检索异常详细信息

Asp.net 正在本地和主机中检索异常详细信息,asp.net,exception-handling,Asp.net,Exception Handling,我有一个函数,它获取异常(ex)并检索它的详细信息,然后将它们保存到数据库中 public static void NewLog(Exception ex, HowToLog option) { // retrive details of exception System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true); s

我有一个函数,它获取异常(ex)并检索它的详细信息,然后将它们保存到数据库中

        public static void NewLog(Exception ex, HowToLog option)
    {
        // retrive details of exception
        System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
        string PageName = trace.GetFrame(trace.FrameCount - 1).GetFileName();
        PageName = PageName.Substring(PageName.LastIndexOf("\\") + 1);
....
}
这在本地但在主机上工作,当发生错误时,此函数尝试将其保存到DB中,以下代码中出现异常“对象引用未设置为对象”:

PageName = PageName.Substring(PageName.LastIndexOf("\\") + 1);

看起来PageName是空的。

那么为什么PageName是空的呢?您需要提供一些代码来显示它的来源。如果您什么都不给我们看,您希望我们如何提供帮助?它很可能在本地工作,因为您有.pdb文件,因此运行时可以查找符号并找到文件名。StackFrame.GetFileName的文档说明,“如果无法确定文件名”,它将返回null。pagename可能为null,或者子字符串获取的值不正确,例如找不到\\符号