如何: 使用 IEHost 記錄檔來偵錯.NET 裝載在 Internet Explorer 中的物件

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

在此頁中

結論

本文將告訴您如何啟動 IEHost.dll Managed 在 Internet Explorer 內執行的通用語言執行階段 (CLR) 主機的延伸的錯誤記錄。

Microsoft.NET Framework SDK 文件將告訴您,如何使用 Fuslogvw.exe 偵錯,當您裝載在 Internet Explorer 中的.NET 模組時可能發生的問題。「 融合,"從中這個公用程式會取得其名稱是 Microsoft 的新零影響的程式安裝技術。因此,Fuslogvw.exe 報告只下載組件或其相依性的錯誤。

關於 IEHost.dll

.NET 模組藉由使用兩個元件所支援在 Internet Explorer 中。第一個是定義於 Internet Explorer 會 IMoniker BindToObject 方法呼叫時,監視應用程式/八位元資料流 MIME 類型的所有內送資料流的 Mscoree.dll 一個 MIME 篩選器。篩選器會檢查位元可攜式可執行檔 (PE) 標頭,以判斷它為 Managed 的模組中的資料流。如果,篩選器只是傳回,並且可讓 Internet Explorer 通常處理資料流。

如果資料流.NET 模組篩選器載入 IEHost 管理組件,並呼叫到它的工廠物件建立要求的物件的執行個體。這個工廠] 物件依序呼叫 IEManager 安全性管理員會設定應用程式定義域 (AppDomain) 為 Internet Explorer 及使用辨識項組件的相關 (尤其是,[URL 和區域成員資格) 來判斷與組件應該要載入的權限。

載入的組件、 安全性權限或物件初始設定中的錯誤不會記錄在 [融合記錄檔。將會如同 ActiveX 控制項通常未初始化的.NET 物件失敗以無訊息模式,離開則的控制項應該是一個小型的溝槽方塊。若要讓這類錯誤您需要 IEHost 偵錯記錄檔作用中。

為 MIME 的其他資訊篩選,按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
260840範例: MIMEfilt 示範 MIME 篩選器的 Internet Explorer

啟動 IEHost 偵錯記錄檔

警告: 如果您未正確使用登錄編輯程式可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 不保證您可以解決因不當使用 「 登錄編輯器 」 的問題。使用 「 登錄編輯程式 」,請自行負擔相關的風險。
  1. 按一下 [開始]、 按一下 [執行]、 輸入 regedit,然後按一下 [確定]]。
  2. 找出並按一下下列登錄機碼:
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework
  3. 新增 DWORD 值,此機碼命名 DebugIEHost ; 將它指派任何非零的值。
  4. 新增名為 IEHostLogFile 字串值。將它指派檔案的完整路徑 (包括檔案名稱) 在 [您要錄製偵錯追蹤 (比方說 C:\Temp\IEDebug.log) 的。

偵錯記錄檔中所含的資訊

記錄檔建立的 IEHost 包含由兩個不同的.NET 類別撰寫的項目: Microsoft.IE.ManagerMicrosoft.IE.SecureFactory。例如:
Creating security manager

Microsoft.IE.Manager: Microsoft.IE.Manager: unique id lgth = 28
Microsoft.IE.SecureFactory: Create SecureFactory() with security 
information
Microsoft.IE.Manager: Created secure factory
Microsoft.IE.SecureFactory: Creating instance of the object in the correct 
domain
Microsoft.IE.SecureFactory: pUrl = http://servername/DebugIEHost/DebugIEHost/test.htm
Microsoft.IE.SecureFactory: id = 86474707A316B616E65610000000
Microsoft.IE.SecureFactory: link = 
Microsoft.IE.SecureFactory: licenses = 
Microsoft.IE.Manager: Url = 
http://servername/DebugIEHost/DebugIEHost/test.htm
Microsoft.IE.Manager: UrlGetPartW returned 0
Microsoft.IE.Manager: CodeBase = http://servername
Microsoft.IE.Manager: Application = DebugIEHost/DebugIEHost
					
此資訊可以識別 URL,用於安全性目的名稱所啟動的應用程式]、 [用於下載的相依性的程式碼基底] 和 [套用至這個物件 (還有其他有用的資訊) 的授權。

最有用的資訊是在物件建立期間發生錯誤時,記錄檔中記錄的堆疊追蹤。比方說假設您嘗試在類別建構函式中資料夾的寫入權:
public DebugIEHost() {
    // This call is required by the Windows.Forms Form Designer.
    InitializeComponent();

    // TODO: Add any initialization after the InitForm call
    FileStream fs = File.Open(@"C:\temp.tmp",System.IO.FileMode.CreateNew);
    StreamWriter sw = new System.IO.StreamWriter(fs);
    sw.WriteLine("Hello, world");
}
				
這項作業未成功,但因為物件已不被完全設置在 Internet Explorer 還,無法以無訊息模式。不過,詳細資訊的堆疊追蹤會寫入記錄檔。您通常會看到兩個堆疊追蹤: 內部例外狀況 (這由您的控制項擲回),] 及 [伺服器例外狀況 (由以您的控制項失敗的回應執行階段擲回的錯誤)。 例如:
Microsoft.IE.SecureFactory: System.Reflection.TargetInvocationException:
Exception has been thrown by the target of an invocation.---->
System.Security.SecurityException: Request for the permission of 
type System.Security.Permissions.FileIOPermission, mscorlib, 
Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 
failed.
   at System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet 
grantedSet, PermissionSet deniedSet, CodeAccessPermission demand, 
PermissionToken permToken)
   ...
					
針對安全性例外狀況也收到了解哪種安全性使用權限要求失敗的詳細資訊:
The state of the failed permission was: 
<IPermission class="System.Security.Permissions.FileIOPermission, 
mscorlib, Version=1.0.3300.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089"
             version="1"
             Read="C:\temp.tmp"
             Write="C:\temp.tmp"/>
					

?考

如需有關偵錯與在.NET Framework SDK,請造訪下列 MSDN 網站:
Debugging with the Microsoft .NET Framework SDK

屬性

文章編號: 313892 - 上次校閱: 2004年1月24日 - 版次: 5.1
這篇文章中的資訊適用於:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 6.0
關鍵字:?
kbmt kbctrl kbmisctools kbdebug kbhowtomaster KB313892 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:313892
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