精品推荐
ASP 组件指南
日期:2005年8月11日 作者:清风网络学院 查看:[大字体
中字体 小字体 ]
错误处理 建议 错误处理器将期待着意外情况。捕获应用程序每一部分中的错误,并尽可能完整地记录下来。好的日志对于跟踪、隔离和疑难解答有重大意义。这些日志可以实现为文本文件或写入 NT 事件日志。在多数情况下,边添加信息边“冒出”错误,是通知调用者已经出错的有效途径。冒出错误使调用者可自由地与处理具体问题的具体方法交互。 当记录错误时,提供尽可能多的有用信息至关重要。考虑包括以下几点: 当前用户环境(调用 Win32 API — GetUserName) 当前线程 ID(调用 Win32 API — GetCurrentThreadId 或 Visual Basic 中的 App.ThreadId) 当前时间(使用 Win32 GetTickCount,得到的是毫秒数据) 传递至方法的参数 错误源,包括方法名 为什么 根据我们的经验,好的错误处理和记录是隔离和诊断运行时问题的最有效途径。 常见的陷阱 还记得 ASP 0115 错误吗? 但愿您不用和它苦苦斗争了。 如果还在为其苦恼, 建议您参阅 Troubleshooting with the IIS Exception Monitor(英文)。 ASP 0115 错误不是总出现在开发人员的控制下 — 但多数时候是这样,错误处理可能已经避免了很多这种情况的发生,还可能在其发生时帮助解决了它们。 总之,最大的问题为跳过错误处理或没有包含有用的诊断信息。 在 COM 中,罕有跨越组件 的界限传播异常的情况。捕获异常 — 但返回 HResults,以向调用者传送失败信息。 详细信息 下面的文章提供了有关有效错误处理的应用示例: Fitch & Mather Stocks: Web Application Design(英文) 全局变量 建议 避免在组件 中使用全局变量。在 Visual Basic 术语中,这表示在标准的 .BAS 模块中没有 Public 或 Global 变量。 为什么 Global 变量并不是真正意义上的全局。每个线程都有自己的副本。如果几种方法恰好在同一线程中执行,它们将看到相同的变量;否则它们访问的是这些变量的不同副本。这意味着您可能给一个全局变量赋了值(在线程 A 中),但其另一个用户(在线程 B 中执行)看不到新值。 其原因是 Visual Basic 内部使用“线程本地存储 (TLS)”来引用全局变量。这意味着每个线程都有自己的 Public 变量的副本,并且因为它存在多个副本,全局数据并不是真正“全局的”。也就是说,恰好在同一线程中运行的用户才会访问到同一个变量,不论他们是否期望如此。 常见的陷阱 如果在标准 .BAS 模块中使用 Public 变量,当不同线程向还想使用同一个数据的不同用户请求提供服务时,这个数据可能已被破坏了。 详细信息 Visual Basic Programmer's Journal(英文)1999 年 6 月版中由 Matt Curland 所著的下列文章 是必读的: Black Belt Programming - Create Worker Threads in DLLs COMponent Builder - Create Efficient Multithreaded Apps 另外,下面 Daniel Appleman 所著的文章 很好地概述了 Visual Basic 中多线程的工作原理: A Thread to Visual Basic(英文) 分布组件 建议组件 的分布涉及性能、可伸缩性和安全性问题。相同组件 的不同分布可能产生更高性能、更易伸缩和更易管理的配置。 下面的指南有助于提高在多台计算机上分布组件 时的性能和可伸缩性: 在 IIS 的同一框围中运行引用 ASP 内置对象的组件 。 在应用程序服务器 上运行数据库 组件 。 在哪一台计算机上运行业务组件 很重要。倘若您去掉业务组件 与任何 ASP 的耦合,您就可以根据您的应用程序设计、计算机的可用性和测试,来自由选择。 当然还有例外。但这些是指南的好的开始。 为什么 跨计算机分布组件 使应用程序可以满足伸缩性要求。其次,上面提到的指南有助于实现应用程序的性能和可伸缩性目标。 对象引用 ASP 内置对象,会与您的 Web 服务器 进行大量通讯,并且由于它们是表达层的一部分,因此它们就在那里。数据库 或对数据极为敏感的逻辑可能在数据库 的存储过程 中。将数据访问组件 置于应用程序服务器 而非数据库 上,避免了组件 之间的昂贵调用。相反,数据访问组件 则利用 SQL Server 通信(如 TCP/IP)与数据库 更有效地通信。
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:怎样使用ASP实现Ping
下一篇:XML 数据的编码方式
ASP 组件指南 相关文章:
ASP 组件指南 相关软件: