0

我开发了一个简单的 XML Web 服务,它使用静态哈希表来存储数据库中的两个列表。哈希表最初在第一次调用 Web 服务时加载了值。Web 服务在 Visual Studio IDE 中运行良好。

当它部署在 IIS(7.0 版)中时,它会引发空指针异常。错误消息指向从哈希表中获取对值的函数。

我的问题是:1)是否可以在 Web 服务的整个生命周期中将静态哈希表存储在 Web 服务中。2)在访问哈希表之前是否应该每次检查哈希表是否为空?3) 使用静态哈希表的最佳方法是什么?

4

1 回答 1

0

这里最可能的问题是,在生产环境中,您的 Web 服务正在处理多个同时调用。这些调用显示为单独的线程,它们HashTable以不安全的方式访问单个线程。这些不安全的访问导致内部数据HashTable被破坏,从而导致NullReferenceException

您需要HashTable使用锁来保护对此的访问,以便从 Web 服务中的静态字段安全地访问它

于 2013-03-07T23:14:14.620 回答