【发布时间】:2014-12-18 18:45:06
【问题描述】:
我需要在 Web 服务端的每个 Web 服务调用之间保留一个字符串列表。简单地说,这个列表不应该在每次 Web 服务调用进行后丢弃。它的生命周期应该随着 Web 服务应用程序的启动和 Web 服务应用程序的停止而结束。类似于应用程序中的静态变量。
如何在 C#.net web-service 中实现这样的东西?
【问题讨论】:
-
只是想确认一下:在每个web服务调用之间保留一个字符串列表——你的意思是当每个客户端发送请求时你应该创建字符串列表并发送给客户端?
-
@DWHelper:不,你认为我在网络服务中有一个 IP 地址列表。因此,在每个 Web 服务调用中,它需要检查调用是否来自列表中的此 IP 之一。因此,此 IP 地址列表应在每个 Web 服务调用之间共享。我可以使用数据库或文本文件来存储这个 IP 列表。但就我而言,我需要更高的效率。所以,我想存储在内存中(听起来像是在全局内存中)
-
尝试实现 WCF 回调合约,这将负责客户端管理。 codeproject.com/Articles/29027/…中的示例项目
-
使用服务时,将数据保存在内存中有时可能不如您预期的那么可靠,尤其是当您可能不知道服务何时启动/关闭时(例如,可能会创建/销毁 WCF 服务实例根据需要处理传入的操作请求,因此可能不会在请求之间共享内存)。如果您需要请求之间的状态,最好将其放在可靠的地方,例如数据库或文件。
-
@ToddBowles:但在这种情况下,我主要担心效率。没有时间从数据库或文本文件中读写。因为大约有 100 个会话做同样的事情。所以可能会有瓶颈。您如何看待保存在 Web 应用程序缓存中?
标签: c# .net web-services