2013-03-07 37 views
0

我开发了一个简单的XML Web服务,它使用静态哈希表来存储数据库中的两个列表。 散列表最初在首次调用Web服务时加载值。 Web服务在Visual Studio IDE中正常工作。WebService中的静态哈希表

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

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

回答

0

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

您需要保护访问这个HashTable用锁安全地从静态字段访问它在Web服务

+0

感谢响应。你能否指导我如何锁定散列表。 – Tom 2013-03-08 00:03:01