好了,我可能会错误地接近这一本质,但我想在4.0与新的WF服务方面发挥建立一个Windows服务是举办WF服务。目前,我已经构建的客户端(含有一个简单的活动XAML)和服务(在XAMLX文件中实现WF服务)的项目。

我试图简单的“hello世界”对于每一个。客户端已在WorkflowApplication被托管和我最初安装的服务作为默认的WF服务项目模板。双方似乎要被罚款那里。

由于我想举办一个服务而不IIS,自然我的下一个尝试是主机我服务于WorkflowServiceHost。这样做我可以使用XamlServices.Load(),并通过其返回到WorkflowServiceHost构造与URI端点沿对象。我担心,因为没有Run()成员方法好像有在WorkflowApplication类。我假定Open()方法将打开该服务宿主对象作为一个服务和它会启动工作流的一个实例,但没有它的指示。

起初我还设置了服务工作流程,简单地写一个文本文件的时候才开始,但什么都没有发生。我试图调试使用断点,但因为它是在运行时加载一个文件XAMLX,VS不允许我调试WF。所以,我试图改变客户端项目有点用的,而不是一个WorkflowServiceHost一个WorkflowApplication。我曾经用来测试出的Hello World风格的工作流相同的工作流,这一次也没有输出到控制台和WorkflowApplication成功与之前。

下面是什么,我跟客户做东道国,在控制台项目工作流服务的最基础的。如果任何人希望看到的XAML工作流让我知道,我会更新这个问题。下面是在Main()托管代码。

const String clientAddress = "http://localhost:9998/Client";    
WorkflowServiceHost wfHost = new WorkflowServiceHost( new ClientWf(), new Uri(clientAddress) );
wfHost.Open();

while( Console.ReadKey().KeyChar.ToString().ToUpper() != "X" ) {    }

wfHost.Close();
有帮助吗?

解决方案

我发现什么了是因为你不能直接启动由WorkflowServiceHost对象包装的WF实例,它是一个有点痛来运行它,并通过简单的方法调用几乎是不可能像你可以用WorkflowApplication完成。还有一个“绝招”有WF火,但需要多一点的黑客的,我还没有在这个时刻给定的时间。 MSDN有,你可以在这种情况下做什么的此处,在托管非服务工作流

这是我与去溶液:同时使用WorkflowServiceHost中和WorkflowApplication。你为什么问?嗯,因为我试图做一大堆的一切在一个小小的包。我也在建设这个作为我工作的自定义服务模式,它的更好,我从所有的通信实现(WorkflowServiceHost中)的分离业务逻辑(WorkflowApplication)。服务火灾就好了,因为当然,现在我的底层通讯的这种方式。工作流与开始接收活动和WorkflowSericeHosts寻找一些类型以启动一个实例在相关联的工作流的根消息活动的。

现在我是一个快乐的人。我的商业逻辑做什么它应该做的预期和工作流服务是很好的充实。有什么更好的是,我有一个模型,我可以在业务逻辑动态下降设置和部署自定义数据处理/动态运算服务。现在只是完美的回调到了最新的远程“仪表板”,这就是我上移动到下一个。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top