zoukankan      html  css  js  c++  java
  • 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]
    publicclass WebServiceForWorkflow : System.Web.Services.WebService {
    public WebServiceForWorkflow () {
    //如果使用设计的组件,请取消注释以下行
    //InitializeComponent();
    }

    [WebMethod]
    publicstring 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
    {
    publicsealedpartialclass Workflow3 : SequentialWorkflowActivity
    {
    publicstring data;

    public Workflow3()
    {
    InitializeComponent();
    }

    privatevoid 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
    staticvoid 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)

  • 相关阅读:
    HDU 4325 Flowers(树状数组)
    HDU 1166 敌兵布阵(树状数组)
    linux网络编程之一-----多播(组播)编程
    对 /dev/shm 认识
    使用GDB调试STL容器
    Android中图片优化之webp使用
    Android后台进程与前台线程间的区别使用
    Android如何从外部跳进App
    熟悉Android开发不得不知道的技巧
    Java代码规范文档
  • 原文地址:https://www.cnblogs.com/leslies2/p/2038530.html
Copyright © 2011-2022 走看看