• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

从 COM 客户端获得连续的 .NET 异常日志记录并且无需修改代码

发布: 2008-5-14 09:43 | 作者: 不详 | 来源: ccid | 查看: 194次 | 进入软件测试论坛讨论

领测软件测试网


返回页首
ASP


ASP 应用程序通常在 dllhost 或 inetinfo 进程中运行,具体取决于隔离级别。例如,中级(它在 Windows NT_ 中不可用)和高级使用 dllhost.exe,而低级总是使用 inetinfo。每个使用 ManagedExceptionInjector 组件的 ASP 应用程序都不仅必须创建该对象并调用 Inject,而且必须在 Application 变量内部存储对它的引用。以下为完成该工作的 ASP 代码(为了简洁起见,省略了错误处理): 

  Dim oInjector
  Set oInjector = Server.CreateObject(
      "NetInteropServicesEngine.ManagedExceptionInjector")
  Set Application("ManagedInjector") = oInjector

需要在应用程序 OnStart 事件内部进行有关调用,以便在进程内部注入所有必需的挂钩。这可以确保在进程中的其他任何客户端导致对 CCW 调用 SetErrorInfo 之前进行有关调用;否则,无法设置挂钩。应当将该调用放置在该事件处理程序的开头以及其他任何代码之前。

通过在应用程序变量中存储对象,我们可以在应用程序 On End 事件中访问它,然后调用 UnInject 方法。该对象必须具有单元灵活性。换句话说,必须可以从进程内部的任何单元中访问它,以便能够将其存储在应用程序变量中。为此,该对象使用 CoCreateFreeThreadedMarshaler 函数聚合了自由线程封送拆收器。

当 Web 应用程序结束(因为 Web 服务器已经重新启动,或者特定应用程序已经卸载)时,应用程序 On End 事件将被调用(这只对通过高隔离级别运行的应用程序可用)。UnInject 方法只是通知 ManagedExceptionLoggerTask 辅助线程完成并清理。

返回页首

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网