文章编号: 313892 - 最后修改: 2003年11月11日 - 修订: 1.5 HOW TO:使用 IEHost 日志调试 Internet Explorer 中承载的 .NET 对象本页概要 本文说明如何为 IEHost.dll(即在 Internet Explorer 内部运行的托管公共语言运行库 (CLR) 宿主)激活扩展错误日志。 Microsoft .NET Framework SDK 文档说明如何使用 Fuslogvw.exe 调试在 Internet Explorer 中承载 .NET 模块时可能发生的问题。该实用程序的名称出自“Fusion”,它是 Microsoft 最新的零影响程序安装技术。因此,Fuslogvw.exe 只报告在下载程序集或其依赖项时出现的错误。 关于 IEHost.dllInternet Explorer 通过两个组件来支持 .NET 模块。第一个组件是在 Mscoree.dll 中实现的 MIME 筛选器,它在 Internet Explorer 调用 IMonikerBindToObject 方法时,监视所有传入的具有 application/octet-stream MIME 类型的数据流。该筛选器在数据流中检查可移植可执行文件 (PE) 头中的信息,以确定它是否是托管模块。如果不是,该筛选器将直接返回,让 Internet Explorer 按常规方式处理该数据流。如果数据流是 .NET 模块,该筛选器将加载 IEHost 托管程序集并调用其工厂对象,以创建所请求的对象的实例。该工厂对象则调用 IEManager(这是为 Internet Explorer 配置应用程序域 (AppDomains) 的安全管理器),并使用这个程序集的证据(也就是它的 URL 和区域成员资格)来确定程序集的加载权限。 Fusion 日志中不会记录程序集加载、安全权限或对象初始化时发生的错误。与 ActiveX 控件一样,初始化失败的 .NET 对象通常不会报错,Internet Explorer 只会在放置该对象的地方显示一个带有小“X”的方框。要查看这些错误,您必须激活 IEHost 调试日志。 有关 MIME 筛选器的其他信息,请单击下面的文章编号,查看 Microsoft 知识库文章: 260840?
(http://support.microsoft.com/kb/260840/EN-US/
)
示例:MIMEfilt Demonstrates MIME Filter for Internet Explorer(MIMEfilt 演示 Internet Explorer 的 MIME 筛选器)
激活 IEHost 调试日志文件警告: “注册表编辑器”使用不当可能会导致严重问题,这些问题可能要求重新安装操作系统。Microsoft 不保证能够解决因为“注册表编辑器”使用不当而产生的问题。使用“注册表编辑器”的风险由您自己承担。
调试日志文件中包含的信息IEHost 创建的日志文件包含由以下两个 .NET 类写入的项目:Microsoft.IE.Manager 和Microsoft.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 最有用的信息是堆栈跟踪;如果在对象创建期间发生错误,日志文件中将记录这些信息。例如,假定您试图在类构造函数中写入文件夹: 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 Web 站点: 使用 Microsoft .NET Framework SDK 进行调试
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptutorials/html/debugging_with_the__net_framework.asp)
这篇文章中的信息适用于:
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。 | 文章翻译
|

回到顶端
