2012-11-12 59 views
1

我正在使用.NET 4框架並製作了WCF工作流服務應用程序。在工作流服務中使用外部SOAP服務

我想使用SOAP Web服務(.NET 3.5)我已經在VS的另一個實例中運行。暴露的唯一方法如下:

[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(其中沒有一個是字符串)。

這裏是一個屏幕截圖,展示在工作流程中的服務的屬性:

enter image description here

我的問題,因此是:

是否有可能在所有通過指定字符串使用SOAP服務作爲輸入參數(就像是要使用它),並將結果賦值給工作流變量?

換句話說,如何讓上圖中的bodyoutBody對應於web服務的參數和返回值?

回答

1

我猜你在這裏使用ASMX風格的Web服務而不是WCF服務。

如果是這樣,添加服務引用的作品,但不能完成最佳的事情。您應該能夠通過將Body設置爲new ReverseRequestBody()並將輸入字符串指定爲正文的一部分來使其工作。與輸出ReverseResponseBody的方式相同,因爲它將包含結果字符串作爲響應主體的一部分。