我CLR20R3
在运行的 ASP.NET 应用程序中遇到错误。我知道最后我需要捕捉到这个错误 - 很明显 - 但这是我在 PROD 中解决这个问题后要完成的维护任务。我不能直接进入维护任务的原因是,要在所有较低的环境中测试和批准这些更改,然后最终到 PROD,需要大量的工作和时间。
该错误表明该P7
值为,因此在从有问题的程序集(这不是我的程序集)4dd
获得 IL 转储后,我找到了该代码。我也在方法标记之后显示了几行,因为我认为那些引用了被调用方法中的违规行:
IL_0040: callvirt instance int32 IBM.WMQ.MQTCPConnection/*02000072*/::SendData(uint8[],
int32,
int32) /* 060004DD */
IL_0045: stloc.0
IL_0046: leave.s IL_0055
现在,考虑到这一点,这是一个很好的问题,因为我试图将其映射回有问题的程序集的反编译代码。
IL_0046: leave.s IL_0055
该行是否指被调用方法中失败的行?
因为如果是这样,下面是匹配的行,以及前面的一些似乎相关的代码:
IL_0044: callvirt instance int32 [System/*23000002*/]System.Net.Sockets.Socket/*0100000E*/::Send(uint8[],
int32,
int32,
valuetype [System/*23000002*/]System.Net.Sockets.SocketFlags/*01000060*/) /* 0A0000F9 */
IL_0049: stloc.0
IL_004a: ldarg.0
IL_004b: ldc.i4 0x92
IL_0050: ldstr "Send returned " /* 700028D5 */
IL_0055: ldloc.0
但是,我很难证明这就是它所指的东西,因为汉斯在这篇文章中说该P8
值是偏移量或违规行,除此之外不会有任何问题。异常表示该P8
值为7d
。