【发布时间】:2010-12-30 22:46:03
【问题描述】:
我的问题是 WCF 不会在 Silverlight 调用之间保持会话。每个调用都是不同的 asp.net 会话。我知道它可以工作,因为我有一个在 Silverlight 中使用自动生成的 WCF 代理的示例,但我使用的是 Channel Factory。我在网上搜索过,但遗憾的是大多数人似乎都使用代理生成器。
我的 web.config
<bindings>
<basicHttpBinding>
<binding name="databaseServiceBasicHttp" allowCookies="true" />
</basicHttpBinding>
</bindings>
<services>
<service name="databaseService"
behaviorConfiguration="Debug">
<endpoint address=""
binding="basicHttpBinding" bindingConfiguration="databaseServiceBasicHttp" contract="BlueGazelle.DatabaseServiceContracts.IDatabaseService" />
</service>
</services>
Silverlight 绑定配置
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding >
<binding name="databaseService" enableHttpCookieContainer="true"/>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:53392/Services/DatabaseService.svc"
binding="basicHttpBinding" bindingConfiguration="databaseService" contract="BlueGazelle.DatabaseServiceContracts.IDatabaseService"
name="BlueGazelle.DatabaseService.Code.DatabaseService"/>
</client>
</system.serviceModel>
</configuration>
我如何创建频道
var service = new ChannelFactory<IDatabaseService>("BlueGazelle.DatabaseService.Code.DatabaseService").CreateChannel();
ChannelFactory 有什么问题吗?我应该启用一些东西让它携带cookie吗?
【问题讨论】:
标签: .net asp.net silverlight wcf