Web服务中的静态哈希表

时间:2013-03-07 23:09:12

标签: web-services hashtable c#-2.0

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

当它在IIS(版本7.0)中部署时,它会抛出一个nullpointer异常。 错误消息指向从哈希表中获取配对值的函数。

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

1 个答案:

答案 0 :(得分:0)

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

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