2011-04-13 124 views
0

我有一个控制台应用程序项目,它是使用WorkflowServiceHost自托管的工作流服务项目。它包含流程图工作流定义(xaml)和cs文件中的一些自定义活动。此应用程序将(通过服务引用)连接到托管为.svc的WCF数据服务。我有一个通过服务引用与工作流服务交互的aspnet web应用程序。这一切都工作正常。WF4托管将自托管控制台应用程序转换为托管在IIS中的服务

我想将工作流服务控制台应用程序转换为托管在IIS上(我正在使用IIS5进行开发,实时环境是IIS6),但我不确定如何处理它。我尝试创建一个WCF WorkflowService应用程序项目并复制我的xaml(更改为xamlx - 不知道是否需要这样做)和cs文件,并创建了对我的WCF数据服务的服务引用,但是当我试图浏览xamlx我得到一个错误“无法创建未知类型x”x是一种类型,它应该能够通过它具有的服务引用“看到”。

我有什么选择托管 - 我必须使用WorkflowServiceApplication还是我可以使用.svc托管?有人可以指出一个教程或通过我需要做的事情来说说我吗?另外,如果可能的话,我希望在类库项目中有工作流定义,从而将其与主机分开。虽然不重要。

+0

好吧,我想我已经找到了“类型”问题,我构建了一个新的简化的.xamlx,只是使用类型进行初始接收和发送回复,区别在于名称空间声明为“clr-namespace:myproject .myserviceref;装配= myproject的;”而控制台应用程序没有程序集定义。 – Nix 2011-04-13 15:56:26

+0

我似乎无法在IIS中使用Windows集成身份验证 - 获取错误“此服务的安全设置需要'匿名'身份验证,但未启用托管此服务的IIS应用程序”。我的WCF服务正在使用Windows认证与“TransportCredentialOnly”,所以我尝试以同样的方式设置我的工作流的webconfig绑定,但没有工作。有任何想法吗?与匿名访问勾选正常工作。 – Nix 2011-04-18 08:57:04

+0

正确 - 我已经确定您只需要最低限度的服务配置 - 这是一种暴露元数据和工作流程实例存储并且可行的行为。由于测试客户端的配置使用安全模式“无”,我的工作流程从WCFTestClient不起作用,所以更改配置时遇到了问题。我仍然无法让WCFTestClient工作,但现在我所有其他客户端都可以使用Windows身份验证,因为他们的配置已配置为使用安全模式=传输。我想知道如何让WCFTestClient工作,但我只用它进行调试,所以它并不重要。 – Nix 2011-04-18 11:10:58

回答

0

XAML和XAMLX文件几乎相同但不完全相同。 XAML文件会生成一个正在生成的类来包装XAML,并使用该类型,就像它是普通类一样。运行时不会编译和分析XAMLX文件。根元素对于两者也不同,并且XAMLX没有x:Class属性,因为它没有被编译。

最简单的方法是创建一个XAMLX文件并将活动从XAML文件复制到XAMLX文件中。