试图深入了解 Windows Workflow 4.5 问题

Fal*_*ate 6 c# workflow workflow-activity workflow-foundation workflow-foundation-4

我得到的错误是

“WorkflowApplication 已中止,因为 Load 或 LoadRunnableInstance 操作引发了异常。创建一个新的 WorkflowApplication 对象以尝试加载另一个工作流实例。”

我正在使用“工作流应用程序”来运行工作流。我正在尝试加载的工作流实例(其中有一些)是在前一段时间创建的,并已保存到数据库中。

有没有办法找到在 Load 或 LoadRunnableInstance 操作期间实际抛出的异常?我在工作流应用程序对象的“中止”事件中发现了这个错误,但它没有告诉我加载过程中抛出的错误。

新增功能

我在 web.config 中粘贴了以下代码以获取有关上述异常的更多详细信息:

<system.diagnostics> <sources> <source name="System.Activities.DurableInstancing" switchValue="Verbose"> <listeners> <add name="textListener" /> <remove name="Default" /> </listeners> </source> </sources> <sharedListeners> <add name="textListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\Log\persistenceproblem.txt" traceOutputOptions="ProcessId, DateTime" /> </sharedListeners> <trace autoflush="true" indentsize="4"> <listeners> <add name="textListener" /> </listeners> </trace> </system.diagnostics>

这向我指出了例外

System.Activities.DurableInstancing 警告:131075:http : //msdn.microsoft.com/en-US/library/System.ServiceModel.Diagnostics.ThrowingException.aspxThrowing一个例外。来源:System.Activities.DurableInstancing 4.0.0.0。异常详细信息:System.Runtime.DurableInstancing.InstancePersistenceCommandException:名为 {urn:schemas-microsoft-com:System.Activities.Persistence/command}LoadWorkflow 的 InstancePersistenceCommand 的执行被错误中断。---> System.Runtime.Serialization.SerializationException: 反序列化器无法加载要反序列化的类型,因为类型 'System.Data.Entity.DynamicProxies.VacancyQuestionFormA_0A0432BFEF4023483E1B33251D8373454EAC6EDF2B2C4F600F2B2C4F6F300000000000000000000000000000000000000000000000000000000A0451D8373454EAC6EDF2B2C4F6F30_DynamicProxies.文化=中性,PublicKeyToken=null'。检查被序列化的类型是否与被反序列化的类型具有相同的协定,并使用相同的程序集。

所以现在我的问题是如何处理正在序列化的动态代理。根据我的阅读,这些是按需提供的,因此不能保证在 Dll 中,尤其是因为我们有多个开发人员。

我们已经有客户端将拥有带有序列化代理类的工作流实例。

我现在的问题变成了:Windows 工作流是否有一种内置方式可以更雄辩地处理序列化代理类?