65.9K
CodeProject 正在变化。 阅读更多。
Home

将 Windows Workflow 公开为 Web 服务

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.85/5 (55投票s)

2008年5月10日

CPOL

4分钟阅读

viewsIcon

69176

downloadIcon

334

将 Windows Workflow 公开为 Web 服务

引言

首先,我将发布一个示例,该示例使开发人员能够将 WF 公开为 Web 服务,

以便任何域中的客户端都可以将此工作流功能用作服务。

在 VS 2008 中,Windows 工作流和 Web 服务可用的其他选项包括

1) Windows 工作流可以消费 Web 服务。

2) 通过使用工具箱中的“WebServiceFaultActivity”,我们可以在

发布异常处理后,向客户端发出错误消息。在我的下一篇文章中,我将介绍相同的内容。

背景

(可选) 是否有任何关于本文的背景信息可能有用,例如对所介绍的基本思想的介绍?

使用代码

关于如何使用文章或代码的简要说明。类名、方法和属性,任何技巧或窍门。

代码块应设置为“Formatted”样式,如下所示

			First Create a Empty Project in Visual Studio 2008, name it “PrabhjotWFasWs”.


		

fig1.JPG

图 1

将一个类“Mathservice.cs”添加到我们的项目中,并声明一个名为“MathService”的接口,

在同一文件中使用一个名为“DivideNumber”的方法。

fig2.JPG

图 2。

定义接口是强制性的,因为这里的接口 MathService 及其方法将与

来自工具箱的“webServiceInput”活动相关联),在工作流中。此接口方法将采用

从 Web 服务角度来看的“Webmethod”形式,并且“WebserviceInput”活动将充当一个网关

用于输入参数,以便工作流被激活和初始化。

因此,这可能是我们第一次告别作为输入参数的 Dictionary 对象。

下一步是将一个工作流类型“具有代码分离的 sequentialWorkFlow”添加到我们的项目中,并且

将其命名为“WorkflowasService.xoml”。

然后按相同顺序拖动三个活动 - WebserviceInput、codeactivity、WebServiceOutput。

现在我们将设置活动的属性。选择 WebserviceInput 形状并按 f4,

以查看属性窗口。

在 Webserviceinput 活动的属性窗口中,我们单击接口类型选择选项旁边的省略号,

请选择我们的接口名称为“MathService”,并选择方法名称为“DivideNumber”,在此之后我们

将扩展同一属性窗口中的参数树。它将扩展到“Dividend”和“Divisor”参数。

如图 3 和图 4 所示

fig3.JPG

图 3

fig4.JPG

图 4

接下来选择与“Dividend”参数关联的省略号。在弹出窗口中,选择选项

“绑定到新成员”,将“A”分配给新成员名称,并且还选择“创建属性”选项,如图 5 所示

这将导致在工作流的视图代码中创建一个声明性属性。

fig5.JPG

图 5

同样,对于另一个参数“Divisor”,再次选择“绑定到新成员”,

将“B”分配给新成员名称,并选择创建属性选项,如图 6 所示。

fig6.JPG

图 6

确保在属性窗口中,我们将“IsActivating”的属性更改为“true”。同样,我们选择

Webserviceoutputactivity1 形状并打开其属性窗口,我们将创建一个新属性“C”,并将其绑定到

返回值属性,如图 7 所示。此外,请确保我们将 WebserviceInputactivity1 分配给 InputActivityname 属性。

每个 webserviceoutput 活动都将与一个 webserviceinput 活动链接。图 7

fig7.JPG

图 7

现在我们必须将操作添加到代码活动,即发生实际除法活动的地方。为此,双击

单击工作流中的 codeactivity 形状并键入此代码 c=a/b。图 8

fig8.JPG

图 8

现在我们完成了,您所要做的就是首先构建项目,然后在项目上单击鼠标右键

在解决方案资源管理器中命名,然后单击“发布为 Web 服务”。图 9。

fig9.JPG

图 9

完成后,您将看到在同一解决方案资源管理器中创建了一个新的项目文件,其中包含一个 .asmx 文件,

将其设置为启动项目并运行该项目,您将获得一个熟悉的 Web 服务测试页面。图 10 和图 11。

fig10.JPG

图 10

fig11.JPG

图 11

使用“var”按钮将变量或类名包裹在<code>标签中,例如this

关注点

在编写代码的过程中,你学到了什么有趣/好玩/令人恼火的东西吗? 你做了什么特别巧妙、疯狂或异想天开的事情吗?

历史

在此处保持您所做的任何更改或改进的实时更新。

© . All rights reserved.