FIX: 發生例外狀況就不會引發 Managed 呼叫端時在.NET Framework 2.0 應用程式中實作自訂封送處理器

文章翻譯 文章翻譯
文章編號: 917868 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

當您實作自訂封送處理器在 Microsoft.NET Framework 2.0 應用例外狀況就不會引發 Managed 呼叫端。 應該擲回的例外狀況,ICustomMarshaler.CleanUpNativeData 方法,以指出原生程式碼的錯誤。

解決方案

支援的 Hotfix 現在可以從 Microsoft,但它只用來修正本文所述的問題。僅適用於發生此特定問題的系統。此 Hotfix 可能會接受其他測試。 因此,如果您不會嚴重影響這個問題,我們建議您等候下一個的 Microsoft.NET Framework 2.0 Service Pack 包含此 Hotfix。

如果要立即解決這個問題,請連絡 Microsoft 產品支援服務以取得該 Hotfix。如需 Microsoft 產品支援服務電話號碼及支援成本的相關資訊的完整清單,請造訪下列 Microsoft 網站]:
http://support.microsoft.com/contactus/?ws=support
附註在特殊情況下通常會因支援電話所產生的費用可能就不收取如果 Microsoft 支援人員認為某特定更新程式可以解決您的問題。平常的支援成本將會套用到其他支援問題是所做不限定特定有問題的更新程式。
此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間中項目控制台中的 [時區] 索引標籤]。

Microsoft.NET Framework 2.0,32 位元系統

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Mscordacwks.dll2.0.50727.166801,2802006 年六月 13 日13: 03x86
Mscorlib.dll2.0.50727.1664,317,1842006 年六月 13 日13: 03x86
Mscorwks.dll2.0.50727.1665,623,8082006 年六月 13 日13: 03x86
Normalization.dll2.0.50727.16615,3602006 年六月 13 日13: 03x86
Normidna.nlp不適用59,3422006 年六月 13 日13: 03不適用
Normnfc.nlp不適用45,7942006 年六月 13 日13: 03不適用
Normnfd.nlp不適用39,2842006 年六月 13 日13: 03不適用
Normnfkc.nlp不適用66,3842006 年六月 13 日13: 03不適用
Normnfkd.nlp不適用60,2942006 年六月 13 日13: 03不適用
Sos.dll2.0.50727.166377,3442006 年六月 13 日13: 03x86

Microsoft.NET Framework 2.0,64 位元的系統

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Mscordacwks.dll2.0.50727.1661,597,4402006 年六月 13 日04: 09x64
Mscorlib.dll2.0.50727.1663,956,7362006 年六月 13 日09: 17x64
Mscorwks.dll2.0.50727.16610,300,9282006 年六月 13 日04: 06x64
Normalization.dll2.0.50727.16618,4322006 年六月 13 日04: 06x64
Normidna.nlp不適用59,3422006 年六月 13 日04: 09不適用
Normnfc.nlp不適用45,7942006 年六月 13 日04: 09不適用
Normnfd.nlp不適用39,2842006 年六月 13 日04: 09不適用
Normnfkc.nlp不適用66,3842006 年六月 13 日04: 09不適用
Normnfkd.nlp不適用60,2942006 年六月 13 日04: 09不適用
Sos.dll2.0.50727.166476,1602006 年六月 13 日04: 16x64

Microsoft.NET Framework 2.0,itanium 為主的系統

摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Mscordacwks.dll2.0.50727.1662,710,5282006 年六月 13 日04: 14IA 64
Mscorlib.dll2.0.50727.1663,956,7362006 年六月 13 日10: 01IA 64
Mscorwks.dll2.0.50727.16621,258,7522006 年六月 13 日04: 11IA 64
Normalization.dll2.0.50727.16644,0322006 年六月 13 日04: 11IA 64
Normidna.nlp不適用59,3422006 年六月 13 日04: 14不適用
Normnfc.nlp不適用45,7942006 年六月 13 日04: 14不適用
Normnfd.nlp不適用39,2842006 年六月 13 日04: 14不適用
Normnfkc.nlp不適用66,3842006 年六月 13 日04: 14不適用
Normnfkd.nlp不適用60,2942006 年六月 13 日04: 14不適用
Sos.dll2.0.50727.166857,0882006 年六月 13 日04: 22IA 64

其他可行方案

如果要解決這個問題,將/輸出 屬性的內容設定為您將會執行自訂封送處理上的參數。設定/輸出 參數之後,呼叫 MarshalNativeToManaged 方法,呼叫原生方法後。您自訂的封送處理呼叫必須如下所示:
static extern void TestMethod(int outputKind, [In, Out, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(CustomMarshaler))]object data);
在執行 64 位元版的 Windows 中的電腦上的 附註,您可以解決這個問題藉由使用此解決方法。 不過,執行 32 位元版的 Windows 電腦上您必須套用 Hotfix 套件才使用這項因應措施。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
824684用來描述 Microsoft 軟體更新標準術語的說明
如需詳細資訊請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:
http://windowssdk.msdn.microsoft.com/en-us/library/system.runtime.interopservices.icustommarshaler.marshalnativetomanaged.aspx

http://msdn2.microsoft.com/en-us/library/system.runtime.interopservices.icustommarshaler.cleanupnativedata.aspx

屬性

文章編號: 917868 - 上次校閱: 2007年12月3日 - 版次: 1.3
這篇文章中的資訊適用於:
  • Microsoft .NET Framework 2.0
關鍵字:?
kbmt kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB917868 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:917868
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com