我不知道在任何WF/WCF 集成活动(SendActivity和ReceiveActivity)中处理 cookie 的任何内置工具。这是有道理的,因为 WCF 与传输无关,因此在较高级别上,API 不能耦合到任何 HTTP 特定功能,例如ASMX Web 服务。
您的解决方案可能是通过使用basicHttpBinding的端点公开 WCF 服务,该端点与 ASMX Web 服务支持的协议兼容,然后恢复使用InvokeWebServiceActivity来调用它们。
此外,由于可以通过任意数量的端点公开 WCF 服务,因此您可以简单地将使用 basicHttpBinding 的端点添加到已经存在的端点中。这是一个例子:
<configuration>
<system.serviceModel>
<services>
<service name="MyNamespace.MyServiceImpl">
<endpoint binding="wsHttpBinding" name="WsHttp"
contract="MyNamespace.IMyService" />
<endpoint address="basic" binding="basicHttpBinding" name="BasicHttp"
contract="MyNamespace.IMyService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/myservice" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
然后使用InvokeWebServiceActivity的工作流将使用以下 URL 调用服务:
http://localhost/myservice/basic