本文可協助您解決 64 位受控應用程式在 Common Language Runtime (CLR) 封送處理期間因存取違規而失敗的問題。
原始產品版本: .NET Framework 3.5 Service Pack 1
原始 KB 編號: 2615130
徵兆
您有在 64 位 Microsoft Windows XP Service Pack (SP) 3 或 64 位 Windows Server 2003 SP2 上以 64 位進程執行的 .NET 受控應用程式。 應用程式可能會在公共語言執行平台(CLR)封送處理期間因存取權限違反而當機。 堆疊追蹤和出錯函式類似以下資訊:
0:000> knL
# Child-SP RetAddr 呼叫位置
00 000000000042c900 00000642
74ee8998 System_ni!DomainNeutralILStubClass.IL_STUB(System.Guid ByRef、IntPtr、Int32、IntPtr、Int32、IntPtr ByRef)+0xff
01 000000000042ca40 00000642
74ee8c30 System_ni!System.Runtime.InteropServices.StandardOleMarshalObject.GetStdMarshaller(System.Guid ByRef, Int32, Int32)+0xe8
02 000000000042caf0 00000642
7f602322
System_ni!System.Runtime.InteropServices.StandardOleMarshalObject.Microsoft.Win32.UnsafeNativeMethods.IMarshal.MarshalInterface(System.Object, System.Guid ByRef, IntPtr, Int32, IntPtr, Int32)+0x6- [Snip]
原因
這是 64 位元 CLR 封送處理中的已知錯誤,它會嘗試將資料寫入唯讀位置,從而引發存取違規。
解決方法
若要解決此問題,請連絡 Microsoft客戶支援服務以取得 Hotfix。 如需Microsoft客戶支援服務電話號碼的完整清單,以及支援成本的相關信息,請流覽 Microsoft支援。