【发布时间】:2012-12-06 14:52:53
【问题描述】:
我有 AJAX 客户端使用 SOAP 1.2 使用的 WCF 服务
Web.config:
<endpoint address="" binding="wsHttpBinding"
contract="WcfService1.IService1" bindingConfiguration="wsHttpBin">
<wsHttpBinding>
<binding name="wsHttpBin">
<security mode="None"/>
</binding>
</wsHttpBinding>
根据我的read,我必须使用<security mode="None"/>,因为使用“wsHttpBinding”绑定公开的服务实现了WS-* 系列Web 服务规范的WS-Security。由于绑定使用安全性,因此请求将被拒绝,因为 AJAX 不支持安全上下文。
我的 WCF 服务行为是用 InstanceContextMode.PerSession 定义的:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple,
InstanceContextMode = InstanceContextMode.PerSession)]
但是当我使用它时,服务表现为 PerCall 并且每次调用都会启动一个新的 WCF 实例,而不是使用当前实例。
为什么使用 wsHttpBinding 时 InstanceContextMode.PerSession 的行为类似于 PerCall?
我能做什么?
【问题讨论】:
-
@ErnieL 谢谢,但使用
对我来说不是一个选项,因为它不适用于我的 AJAX 客户端。 -
wsHttpBinding 本身不支持会话。
-
@ErnieL 那么我该怎么做才能从 Ajax 使用 Wcf 并使用会话?
标签: ajax wcf soap wshttpbinding wcf-sessions