3

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

4

1 回答 1

2

我分三步完成了这项工作:

  1. 临时公开工作流服务中的元数据
  2. 使用 svcutil 创建代理代码
  3. 将配置改回不公开元数据

详细地:

  • 在创建为“WCF 工作流服务应用程序”(DeclarativeServiceLibrary1) 的项目中包含定义服务的 XAMLX 文件
  • 编译项目
  • 将项目设置为启动项目
  • 在解决方案资源管理器中选择 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 是最稳定的方法。希望这可以帮助。

于 2013-04-18T14:33:52.933 回答