WF工作流与Web服务的相互调用 —— 以InvokeWebServiceActivity在Workflow工作流调用Web服务...

在前面两篇文章里面已经为大家介绍过如何在Web服务调动Workflow工作流,在这篇文章为大家介绍如何通过InvokeWebServiceActivity在Workflow中调动Web服务。

下面还是以最简单的Hello World作为例子:

首先开发一个ASMX服务

View Code
<% @ WebService Language = " C# " CodeBehind = " ~/App_Code/WebServiceForWorkflow.cs " class = " WebServiceForWorkflow " %>
[WebService(Namespace = " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class WebServiceForWorkflow : System.Web.Services.WebService { public WebServiceForWorkflow () { // 如果使用设计的组件,请取消注释以下行 // InitializeComponent(); }
[WebMethod] public string HelloWorld() { return " Hello World " ;
}
}

然后在Workflow文件里面加入InvokeWebServiceActivity活动

现在通过URL属性添加对Web服务的引用“http://localhost:5500 /WebServiceForWorkflow.asmx”,此时系统会自动生成代理去管理此服务。然后设置MethodName为 HelloWorld,把ReturnValue设置为data。

最后为invokeWebServiceActivity1添加处理方法invokeWebServiceActivity1_Invoked

View Code
namespace Microsoft.Workflow
{ public sealed partial class Workflow3 : SequentialWorkflowActivity
{ public string data; public Workflow3()
{
InitializeComponent();
} private void invokeWebServiceActivity1_Invoked( object sender, InvokeWebServiceEventArgs e)
{
Console.WriteLine(data);
}
}
}

这时候配置好config文件

View Code
<? xml version = " 1.0 " encoding = " utf-8 " ?> < configuration > < configSections > < sectionGroup name = " applicationSettings " type = " System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " > < section name = " Microsoft.Workflow.Properties.Settings " type = " System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " requirePermission = " false " /> </ sectionGroup > </ configSections > < applicationSettings > < Microsoft.Workflow.Properties.Settings > < setting name = " Microsoft_Workflow_WebServiceForWorkflow "
serializeAs = " String " > < value > http: // localhost:5500/WebServiceForWorkflow.asmx</value> // 此处是Web服务的引用地址 </ setting > </ Microsoft.Workflow.Properties.Settings > </ applicationSettings > </ configuration >

现在可以对Workflow进行一下测试

View Code
static void Main( string [] args)
{ using (WorkflowRuntime runtime = new WorkflowRuntime())
{
runtime.StartRuntime();
WorkflowInstance instance = runtime.CreateWorkflow( typeof (Workflow3), null );
instance.Start();
AutoResetEvent wailHandler = new AutoResetEvent( false );
wailHandler.WaitOne( 1000 );
Console.ReadLine();
}
}

通过这个的开发实例,大家可以认识到如何使用InvokeWebServiceActivity调用Web服务。总而言之,通过Web服务与 Workflow工作流的相互调用,可以实现多个复杂的业务层的开发。在下一篇文章将为大家介绍如何在WCF与Workflow工作流之间实现相互调用, 协调工作。

 对 .NET  开发有兴趣的朋友欢迎加入QQ群:162338858 共同探讨 !

WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(基础实例)WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(开发持久化工作流)WF工作流与Web服务的相互调用 —— 以InvokeWebServiceActivity在Workflow工作流调用Web服务WF工作流与Web服务的相互调用 —— WF与WCF互相调用(利用ReceiveActivity把WF发布为WCF)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值