Tag: workflow foundation

ReflectionTypeLoadException

当我尝试构建My WF项目时,我收到此错误。 我发现删除System.Activities.Presentation可以解决此错误。 如果我在运行时收到此错误,我可以调查LoaderExceptions以找出根问题。 当我在编译时遇到这个错误时怎么办? 或者,有人知道如何解决这个特殊问题吗? 扩展名“Microsoft.Activities.Build.Validation.ValidationBuildExtension”引发了类型为“System.Reflection.ReflectionTypeLoadException”的exception:’无法加载一个或多个请求的类型。 检索LoaderExceptions属性以获取更多信息。’。

如何在服务器重新启动时从实例存储中加载具有多个工作流定义的可运行实例

我正在评估Workflow Foundation 4或4.5,并想知道如何在服务器重启时从实例存储中加载具有多个工作流定义的可运行实例? 这是与论坛主题相同的问题: http : //social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/b8d5ed34-054a-4e55-88e1-cd430ac42110? prof= required “当使用InstanceStore.WaitForEvents时,如果任何实例准备就绪,则会引发HasRunnableWorkflowEvent事件。而且,要调用WorkflowApplication.LoadRunnableInstance(),我们需要创建一个新的WorkflowApplication,它需要正确的工作流程定义。只有1个工作流实现。但是,如果有多个类型的工作流与同一个InstanceStore相关联,并且因为HasRunnableWorkflowEvent在将由LoadRunnableInstance()加载的就绪实例上没有任何其他信息,我们无法知道我们必须为新的WorkflowApplication创建什么类型的实例。“ 但答案表明: 唯一的方法是在使用WorkflowApplication进行托管时为每个工作流定义创建单独的实例存储。 我错过了什么?

在不知道具体活动类型的情况下恢复持久化Window Workflow 4活动

我试图了解如何在不知道活动的具体类型的情况下如何恢复(加载)先前持久的WF4活动。 为了加载一个持久化的活动,我不仅需要它的workflowId (我有),但我也需要传递一个活动的实例 – 所以我需要知道它的类型: var workflowApplication = new WorkflowApplication(activity); // what type is activity? workflowApplication.Load(workflowId); 问题是它可能是许多类型中的一种 – 此活动旨在用于其他活动和工作流程:它将消息发送到消息队列,书签然后保留。 当通过消息队列接收到相应的消息时,它会恢复,但我不知道原始工作流的确切具体类型,而不检查持久性数据。 这看起来像捕获22。 我不能在不知道活动类型的情况下加载工作流程,如果不加载工作流程并检查其持久化数据,我无法知道活动类型。 我觉得我在这里遗漏了一些东西 – 有没有办法在不知道活动的情况下创建托管WorkflowActivity,或者在创建WorkflowActivity之前重新加载持久性数据以计算实际activity类型的方法?

如何编写长时间运行的活动来调用WF 4.0中的Web服务

我创建了一个执行Web请求的活动,并将结果存储到数据库中。 我发现对于这些长时间运行的活动,我应该编写一些不同的代码,以便不会阻止工作流引擎线程。 public sealed class WebSaveActivity : NativeActivity { protected override void Execute(NativeActivityContext context) { GetAndSave(); // This takes 1 hour to accomplish. } } 我应该如何重写此活动以满足长时间运行的活动的要求

试图找到Windows Workflow 4.5问题的底部

我得到的错误是 “WorkflowApplication已中止,因为Load或LoadRunnableInstance操作引发了exception。创建一个新的WorkflowApplication对象以尝试加载另一个工作流实例。” 我正在使用“workflowapplication”来运行工作流程。 我正在尝试加载的工作流实例(其中有一些)是在前一段时间创建的,并且持久存储在数据库中。 有没有办法找到在Load或LoadRunnableInstance操作期间实际抛出的exception? 我在workflowapplication对象的“aborted”事件中捕获到了这个错误,但它并没有告诉我在加载过程中抛出的错误。 新增加 我在web.config中粘贴了以下代码以获取有关上述exception的更多详细信息: 这指向了我的例外 System.Activities.DurableInstancing警告:131075: http : //msdn.microsoft.com/en-US/library/System.ServiceModel.Diagnostics.ThrowingException.aspxThrowing exception。 来源:System.Activities.DurableInstancing 4.0.0.0。 exception详细信息:System.Runtime.DurableInstancing.InstancePersistenceCommandException:名为{urn:schemas-microsoft-com:System.Activities.Persistence / command}的InstancePersistenceCommand的执行由于错误而中断LoadWorkflow。 —> System.Runtime.Serialization.SerializationException:反序列化器无法加载要反序列化的类型,因为在程序集’EntityFrameworkDynamicProxies-ConnectCore,Version = 1.0.0.0中找不到类型’System.Data.Entity.DynamicProxies.VacancyQuestionFormA_0A0432BFEF4023483E1B33251D8373454EAC6EDF2B2C6F312A4F606F45AF30E8’, Culture = neutral,PublicKeyToken = null’。 检查序列化的类型是否与要反序列化的类型具有相同的合同,并使用相同的程序集。 所以现在我的问题是如何处理被序列化的动态代理。 根据我的阅读,这些是按需的,因此不能保证在Dlls中,特别是因为我们有多个开发人员。 我们已经拥有了具有序列化代理类的工作流实例的客户端。 我的问题现在变成:Windows Workflow是否有内置的方式更加雄辩地处理序列化代理类?

在SQL Server中存储文件还是将它们保存在文件服务器上?

目前,我们有数千个Microsoft Word文件,Excel文件,PDF,图像等存储在文件夹/子文件夹中。 这些是由应用程序定期生成的,可以在该应用程序中随时访问。 在我们期待升级时,我们现在正考虑将所有这些文档存储在SQL Server 2005中。 这样做的原因是能够压缩文档,添加其他字段以存储有关这些文档的更多信息,并在必要时应用索引。 我想我所追求的是使用SQL Server作为文档存储库而不是将它们保存在文件服务器上的优缺点,以及您在执行此操作时可能获得的任何经验。 我们将使用C#和Windows Workflow来完成此任务。 感谢您的意见。 编辑 文件有多大? 介于100k = 200k之间(平均70KB) 会有多少? 目前它有大约310万个文件(范围从Word / Excel和PDF),每天可以增加2,600个文件。 (增长也会随着时间的推移而增加) 读了多少? 这个很难量化,因为我们的旧系统/应用程序很难解决这个问题。 在类似职位上指出的另一个有用的链接涵盖了两种方法的利弊。 DB与FileSystem上存储的文件 – 优点和缺点

Workflow Foundation 4中的dependency injection/ IoC

是否可以在工作流程活动中使用DI? 如果是,怎么样? 例如,如果您有类似的活动 public sealed class MyActivity : CodeActivity { public MyClass Dependency { get; set; } protected override void Execute(CodeActivityContext context) { Dependency.DoSomething(); } } 我该如何设置Dependency ? (我正在使用Spring.Net)