将ChannelFactory与WorkflowServiceHost一起使用

时间:2013-04-18 12:14:18

标签: wcf workflow-foundation-4 workflow-foundation

是否有办法对工作流定义XAML进行服务推断,以创建可以分发给客户端的接口,以便与ChannelFactory一起使用,而不是主机公开WSDL,客户端必须通过添加生成服务定义服务参考?

1 个答案:

答案 0 :(得分:2)

我是通过三个步骤完成的:

  1. 暂时公开工作流服务中的元数据
  2. 使用svcutil创建代理代码
  3. 将配置更改回不公开元数据
  4. 详细信息:

    • 包含您的XAMLX文件,该文件在创建为“WCF工作流服务应用程序”的项目中定义服务(DeclarativeServiceLibrary1)
    • 编译项​​目
    • 将项目设置为启动项目
    • 在解决方案资源管理器中选择xamlx文件
    • 按Ctrl-F5 - > WCF测试客户端启动,您看到您的服务已加载
    • 右键单击WCF测试客户端中的xamlx URL,选择复制地址(例如http://localhost:56326/Service1.xamlx
    • 打开VS2010管理控制台窗口
    • 使用 svcutil.exe 创建代理代码:
      • cd /D %TEMP%
      • svcutil http://localhost:56326/Service1.xamlx
      • 这将创建两个文件,* .cs和* .config,其中包含代理代码

    我在使用代理代码的其他方法(VS2010内部)方面遇到了很多问题,外部svcutil是最稳定的方法。希望这会有所帮助。