wcf和隔离存储-需要解释
本文关键字:解释 存储 隔离 wcf | 更新日期: 2023-09-27 18:25:20
我脑子里有一些想法,我想把它们放在合适的架子上,但用一种通用的方法,以便在未来传播我的知识。
因此,假设我运行的WCF服务包含两个方法:一个方法向客户端发送一些对象的列表(当客户端要求时),另一个方法根据客户端的操作更改对象的状态。通过WCF发送的那些对象存储在服务端的独立存储中。
现在,让我把我的问题分组:
1) 首先,我想知道如果许多客户将我的服务添加为服务引用会发生什么。由于此服务使用的是独立存储(假设我使用的是汇编存储),如果许多客户端希望同时更改数据,会发生什么?我的意思是,隔离存储在这里是如何工作的,它是否为每个客户端生成不同的文件(这意味着它对许多用户来说是安全的,因为他们每个人都在操作不同的文件)?因为如果它存储在服务器端,那么我想它是每个人的一个文件。。或者我可以自己决定配置隔离存储还是服务器本身?如果是,如何?
2) 假设此文件对于每个客户端都是通用的。然后我必须提供一些锁定/解锁逻辑。WCF有什么特别之处吗?你能提供一些关于那件事的好文章吗?
对于独立存储,文件由用户和程序集分隔,因此在您的情况下,除非使用模拟,否则它是IUSR_machine
。因此,您需要实现文件锁定/解锁。为什么不能使用SQL数据库作为存储?
更新:
模拟基本上允许您的进程在与拥有线程的进程不同的安全上下文中运行。从…起https://msdn.microsoft.com/en-us/library/ms730088(v=vs.110).aspx
通常,客户端调用一个服务,让该服务执行一些代表客户采取行动。模拟允许服务执行操作作为客户端执行动作。
另请参阅http://blogs.msdn.com/b/saurabs/archive/2012/07/16/wcf-learning-impersonation.aspx
你基本上把这样的东西放进你的配置文件:
<serviceAuthorization impersonateCallerForAllOperations="true" />