Web服务状态

我有两个wcf服务,使用http绑定在IIS中托管相同的接口。两者都只有三种方法:
OpenFile(userid)
创建或打开userid.txt。
Write(userid, X)
将X写入文件
Close(userid)
关闭文件
InstanceContextMode =InstanceContextMode.PerSession
用于服务B. 服务A: 它是无状态的(服务技术上不需要记住用户ID,它是由客户端跟踪的)还是有状态的(服务操作就像状态机。客户端必须按特定顺序调用方法)? 如果使用HTTPS绑定,它是否有状态? 服务B: 它是无状态的,有状态的(因为使用了IIS会话)? 我想一个更普遍的问题是Web服务的状态是否取决于它的设计和实现方式或它是如何托管的?是否有一个“清单”,我可以通过它来确定我的Web服务是否归类为无状态或有状态? 谢谢     
已邀请:
默认情况下,HTTP上的任何内容都是无状态的。使用PerSession时,它仍取决于您的Web服务实现是否使用Sessions。但无论如何,您的Web服务器仍然是无状态的,这正是您在特殊对象(缓存,文件,数据库或会话)中保留状态的时候。 甚至会话也是无状态的:除非服务器在HTTP请求中发送cookie,否则请求之间不会记住任何内容。 对于HTTPS,这不会改变。虽然它是一个完全不同的协议,但有状态不会改变。 关于你的清单:它会很短,因为它总是无状态的HTTP。实现是否维持状态不会改变这一点。这取决于实现如何解决这个限制并维持状态,你不能在外面“看到”。     

要回复问题请先登录注册