Select the product you need help with
- Internet Explorer
- Windows Phone
- More products
HOW TO: Use the IEHost Log to Debug .NET Object Hosting in Internet Explorer
Article ID: 313892 - View products that this article applies to.
This article was previously published under Q313892
This article describes how to activate extended error logging for IEHost.dll, the managed Common Language Run-time (CLR) host that runs inside Internet Explorer.
The Microsoft .NET Framework SDK documentation describes how to use Fuslogvw.exe to debug problems that may occur when you host a .NET module in Internet Explorer. "Fusion," from which this utility takes its name, is Microsoft's new zero-impact program-installation technology. Therefore, Fuslogvw.exe reports errors only in downloading the assembly or its dependencies.
If the stream is a .NET module, the filter loads the IEHost managed assembly and calls into its factory object to create an instance of the requested object. This factory object, in turn, calls IEManager, a security manager that configures the Application Domains (AppDomains) for Internet Explorer and uses evidence about the assembly (particularly, the URL and zone membership) to determine the permissions with which the assembly should be loaded.
Errors in assembly loading, security permissions, or object initialization are not recorded in the Fusion log. As with ActiveX controls, a .NET object that is not initialized typically fails silently, leaving a small, grooved box where the control should be. To see such errors, you need to active the IEHost debug log.
For additional information about MIME filters, click the article number below to view the article in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/260840/EN-US/ )SAMPLE: MIMEfilt Demonstrates MIME Filter for Internet Explorer
This information identifies the URL that is used for security purposes, the name of the application that is being started, the code base that is used for downloading dependencies, and the licenses that apply to this object (among other useful information).
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
The most useful information is a stack trace, which is recorded in the log file if an error occurs during object creation. For example, assume that you tried to write to a folder in your class constructor:
This operation does not succeed, but because the object has not been fully sited in Internet Explorer yet, it fails silently. However, a verbose stack trace is written to your log file. You typically see two stack traces: an inner exception (which is thrown by your control), and a server exception (the error that is thrown by the run-time in response to your control's failure). For example:
For security exceptions, you also receive details about which security permission request failed:
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"/>
For more information about debugging with the .NET Framework SDK, visit the following MSDN Web site:
Debugging with the Microsoft .NET Framework SDK