要运行 Web 应用程序,需要将其安装在一个名为 ManagedExceptionWebApp 的新的虚拟目录中。需要生成 .NET 程序集,将其复制到应用程序文件夹中,并且使用 regasm 向 COM Interop 注册。还需要将异常块程序集 Microsoft.ApplicationBlocks.ExceptionManagement.dll 和 Microsoft.ApplicationBlocks.ExceptionManagement.Interfaces.dll 复制到该文件夹中。(请注意,需要使用 InstallUtil 实用工具安装 Microsoft.ApplicationBlocks.ExceptionManager.dll 程序集,以便在从 ASP 页中使用它之前,注册多个不同的事件源。)如果该操作未获执行,则 ASP 应用程序将尝试在事件源被首次引用时创建它们,并且在某些配置中,这可能导致安全异常,原因是匿名用户不具有创建事件源的权限。一个名为 RegisterTypeLibs 的文件从调试文件夹中复制这些程序集,并且向 COM Interop 注册它们。
创建 .NET 组件的 CLR 宿主的应用程序文件夹将是 \system32(当 dllhost 被用于将保护级别设置为“中”或“高”的应用程序时)或 \system32\inetsrv(当应用程序的保护级别为“低”时)。相应的配置文件将因此称为 dllhost.exe.config 和 inetinfo.exe.config(如果需要运行库配置)。
返回页首
小结
在本文中,我已经讨论了能够在引发异常时截获 .NET 运行库 CCW 调用的对象的设计和实现。这可以提供连续的异常日志记录,而无需对 .NET 组件进行任何更改。我还分析了我在尝试生成能够在生产环境中正常工作的健壮解决方案时遇到的各种问题。
Framework 不仅向您展示了多种低级别技术(例如,将工作挂钩和调度到队列中),而且它还通过生成您可以直接在自己的应用程序中广泛应用的有用组件完成了相应工作。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/