1

我正在使用 .NET 4 框架并制作了 WCF 工作流服务应用程序。

我想使用在另一个 VS 实例中运行的 SOAP Web 服务 (.NET 3.5)。唯一公开的方法如下:

[WebMethod]
public string Reverse(string input)
{
    char[] chars = input.ToCharArray();
    Array.Reverse(chars);
    return new string(chars);
}

我已使用以下步骤在我的工作流程中添加服务:

  1. 添加服务参考
  2. 提供 WSDL(操作按预期显示在操作框中)
  3. 单击确定
  4. 构建解决方案以确保服务显示在我的工具箱中
  5. 将服务从工具箱拖到工作流中

但是,当我查看工作流中服务的属性时,无法指定输入参数或存储服务调用结果的位置。

我只能选择指定一些晦涩的参数,例如Body:InArgument<ReverseRequestBodyoutBody:OutArgument<ReverseResponseBody(都不是字符串)。

这是描述工作流中服务属性的屏幕截图:

在此处输入图像描述

因此,我的问题是:

是否可以通过将字符串指定为输入参数(就像要使用它一样)来使用 SOAP 服务,并将结果分配给工作流变量?

也就是说,如何让上图中的和对应web服务的参数和返回值呢bodyoutBody

4

1 回答 1

1

我猜您在这里使用的是 ASMX 样式的 Web 服务,而不是 WCF 服务。

如果是这样,添加服务参考可以工作,但不能做到最佳。您应该能够通过将 a 设置Body为 anew ReverseRequestBody()并将输入字符串指定为正文的一部分来使事情正常进行。与输出的方式相同,ReverseResponseBody因为它将包含结果字符串作为响应正文的一部分。

于 2012-11-14T08:33:19.637 回答