我正在研究WCF-WSIT(Metro)集成项目,并且希望允许Java客户端连接到持久服务。我可以在WSIT(Metro)客户端上使用WCF wsHttpContextBinding吗?
耐久服务 http://msdn.microsoft.com/en-us/library/bb410767(v=vs.90).aspx
耐用的服务需要wsHttpContextBinding,这似乎是工作的罚款。唯一的问题是,WSIT客户端生成的代理似乎无法将实例id分配给soap信封。有没有我不知道的配置设置,或者可能拦截传出的消息并追加instanceId?
以下SOAP示例由.NET客户端生成。信封WSIT发送和这个之间唯一的区别是WSIT之一缺少背景节点:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:r="http://schemas.xmlsoap.org/ws/2005/02/rm" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
...
<Context xmlns="http://schemas.microsoft.com/ws/2006/05/context">
<Property name="instanceId">{I want to set this Id}</Property>
</Context>
...
</s:Header>
<s:Body>
<IncreaseCounter xmlns="http://tempuri.org/"/>
</s:Body>
</s:Envelope>
我希望它是有道理的。问题不在于ws2007HttpBinding或wsHttpBinding相关或与WCF实例管理相关;每个/通话,会话,单个。我只需要WSIT,Java位的帮助。
感谢您的反馈意见;我已经在使用每个会话,并且在1分钟不活动后我的实例被关闭。问题是每个代理实例都会创建一个WCF会话,并且如果该代理已关闭,则无法重新连接到每个会话实例。持久服务从可配置的persistenceProvider中保存并加载它们的状态。我会在我的问题中添加一些链接,以明确我感兴趣的场景。 – 2011-03-24 17:01:02