是否可以在wcf服务的OperationContract中读取cookie?我试图在合同方法中读取cookie值,但它总是空的。如果我从.aspx页面读取相同的cookie,则该值存在。有什么想法吗?
答案 0 :(得分:1)
你是如何托管他们的? WCF旨在与主机无关 - 即,在IIS之外托管时,您的服务仍然可以正常工作。但是,有一种兼容模式可能对您有所帮助:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
默认值为false并禁用大多数ASP.NET功能,如HttpContext.Current。
答案 1 :(得分:1)
BasicHttpBinding.AllowCookies Property可能会解决这个问题,正如Enrico在Managing shared cookies in WCF上发表的博文(引用here)所述。该帖子包含web.config片段:
<system.ServiceModel>
<bindings>
<basicHttpBinding allowCookies="true">
</bindings>
<client>
<endpoint address="http://localhost/myservice"
binding="basicHttpBinding"
contract="IMyService" />
</client>
</system.ServiceModel>
但没有使用它的代码片段(博客文章中包含使用相同Cookie和不同Web服务的更复杂解决方案的代码)。
========编辑==========
或者甚至是allowCookies=false