我开发了一个简单的XML Web服务,它使用静态哈希表来存储数据库中的两个列表。 哈希表最初在第一次调用Web服务时加载了值。 Web服务在Visual Studio IDE中运行良好。
当它在IIS(版本7.0)中部署时,它会抛出一个nullpointer异常。 错误消息指向从哈希表中获取配对值的函数。
我的问题是: 1)是否可以在Web服务的整个生命周期中在Web服务中存储静态哈希表。 2)如果在访问哈希表之前是否为空,是否应每次检查哈希表? 3)使用静态哈希表的最佳方法是什么?
答案 0 :(得分:0)
这里最可能的问题是,在生产中,您的Web服务正在处理多个同时呼叫。这些调用显示为单独的线程,并且它们以不安全的方式访问单个HashTable
。这些不安全的访问导致HashTable
的内部数据被破坏,导致NullReferenceException
您需要使用锁来保护对此HashTable
的访问权限,以便从Web服务中的静态字段安全地访问它