ASP.NET死黄色屏幕 - 它从哪里获得堆栈跟踪?

Dav*_*ale 7 c# asp.net exception targetinvocationexception ysod

我在我的应用程序中设置了远程类型,我避免TargetInvocationExceptions并抓住内部异常.我调用类的内部PrepForRemoting方法Exception来保护调用方法的堆栈跟踪.

这似乎正确构造堆栈跟踪属性:

"\ r \n服务器堆栈跟踪:\ r \n

在ZBooking.Environment.Services.BookingService.<> c_ DisplayClass9`1.b _5(BookingSlot p)在C:\ dev\ZBookings\core\ZZBookings.Services\BookingService.cs:第79行\ r \n

在System.Linq.Enumerable.All [TSource](IEnumerable'1 source,Func'2谓词)\ r \n

在ZBookings.BookingService.MoveBooking [TBookingType](Int32 bookingId,> IEnumerable`1 bookingSlots)在C:\ dev\ZBooking.Client\core\ZBookings.Services\BookingService.cs:第79行\ r \n\r \n

在[0]处重新抛出异常:\ r \n在ZBookings.BookingService.<> c_ DisplayClass9`1.b _5(BookingSlot p)在C:\ dev\ZBookings\core\ZBookings.Services\BookingService.cs:第79行\ [R \n

在System.Linq.Enumerable.All [TSource](IEnumerable'1 source,Func'2谓词)\ r \n

在ZBookings.BookingService.MoveBooking [TBookingType](Int32 bookingId,IEnumerable`1 bookingSlots)在C:\ dev\ZBookings\core\ZBookings.Services\BookingService.cs:第79行"

但是,当标准ASP.NET黄色屏幕显示时,它是:

[NullReferenceException:对象引用未设置为对象的实例.] ZBooking.ApplicationServices.MethodMarshaller.Invoke(Delegate del,ZipIdentity zipIdentity,Object [] args)在C:\ dev\ZBooking\core\ZBooking.ApplicationServices\MethodMarshaller中. cs:147 ZBooking.ApplicationServices.MethodMarshaller.Invoke(Delegate del,ZipIdentity zipIdentity,Object [] args)在C:\ dev\ZBooking\core\ZBooking.ApplicationServices\MethodMarshaller.cs:105 ZBooking.ApplicationServices.MethodMarshaller.Call(Func) '3 del,T1 arg1,T2 arg2,ZipIdentity zipIdentity)在C:\ dev\ZBooking\core\ZBooking.ApplicationServices\MethodMarshaller.cs:72
...等.

Server.GetLastError();在Global.asax中调用Application_Error会显示正确的堆栈跟踪.黄色屏幕堆栈的痕迹来自哪里?

Ati*_*ziz 7

ASP.NET的黄色死亡屏幕通过构造StackTrace异常来获取堆栈跟踪.它使用StackTrace(Exception, Boolean)构造函数执行此操作.然后它通过遍历对象提供的StackFrame对象来转储堆栈StackTrace.它不使用该Exception.StackTrace属性.