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会显示正确的堆栈跟踪.黄色屏幕堆栈的痕迹来自哪里?
ASP.NET的黄色死亡屏幕通过构造StackTrace
异常来获取堆栈跟踪.它使用StackTrace(Exception, Boolean)
构造函数执行此操作.然后它通过遍历对象提供的StackFrame对象来转储堆栈StackTrace
.它不使用该Exception.StackTrace
属性.
归档时间: |
|
查看次数: |
1229 次 |
最近记录: |