WebService 中的静态哈希表
Posted
技术标签:
【中文标题】WebService 中的静态哈希表【英文标题】:Static Hashtable in WebService 【发布时间】:2013-03-07 23:09:11 【问题描述】:我开发了一个简单的 XML Web 服务,它使用静态哈希表来存储数据库中的两列表。 哈希表最初在第一次调用 Web 服务时加载了值。 Web 服务在 Visual Studio IDE 中运行良好。
在 IIS(7.0 版)中部署时,会引发空指针异常。 错误消息指向从哈希表中获取对值的函数。
我的问题是: 1) 是否可以在 Web 服务的整个生命周期中将静态哈希表存储在 Web 服务中。 2)在访问哈希表之前是否应该每次检查哈希表是否为空? 3) 使用静态哈希表的最佳方式是什么?
【问题讨论】:
【参考方案1】:这里最可能的问题是,在生产环境中,您的 Web 服务正在处理多个同时调用。这些调用显示为单独的线程,它们以不安全的方式访问单个 HashTable
。这些不安全的访问导致HashTable
的内部数据被破坏,从而导致NullReferenceException
您需要使用锁来保护对此HashTable
的访问,以便从 Web 服务中的静态字段安全地访问它
【讨论】:
感谢您的回复。请指导我如何锁定哈希表。以上是关于WebService 中的静态哈希表的主要内容,如果未能解决你的问题,请参考以下文章