我目前正在开发一个 WebService,旨在供许多不同的瘦客户端使用。到目前为止,我一直在使用 1 个网站作为客户端对其进行测试。
我的问题是,Web 服务有正确的类。当有人登录到使用网络服务的网站时,是否为使用它的人实例化了主类?
例如在调试期间我有 1 个客户端。
- 服务以实例化为“Hello World”的变量开始,客户端从服务中请求字符串,然后将其发回。
- 该服务随后更改了一个内部 变量等于发送的变量 由客户。那时候的服务 将 2 添加到末尾,因此变量 现在是“Hello World 2”。
- 客户要求更新 字符串,并获取 Hello World 2。
- 另一个用户登录。他们要求
字符串,期待 Hello World
但是得到 Hello World 2。现在当
发回他们得到 Hello World 2
- 这是一个不受欢迎的结果,也是我要避免的。
我该怎么做?
最佳答案
如果您希望为新客户端重置状态,则需要跟踪哪些客户端已连接并适本地为它们提供数据。这可能需要调用来设置 session ,以便您可以将 token 分配并返回给客户端,然后将其用于所有后续调用。
另一种方法是使用 WCF 编写您的服务,然后使用 PerSession
InstanceContextMode
,这将为每个 session 构造一个新的服务对象。在这种情况下,您仍然需要指明哪些调用开始 session ,哪些调用结束 session 。有关更多信息,请参阅 here .
关于c# - 代码如何在 WebService 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6021703/