2008年2月20日,星期三

更多双色球推荐一注流程问题和解决方案

我今天想做的是通过处理我在开发过程中遇到的一些问题来总结我的双色球推荐一注流程系列。如果您喜欢双色球推荐一注流程,您可能已经看到了Rob Bogue的出色作品 的SharePoint + Workflow的10个问题(和解决方案) -这篇文章是Rob的延伸。它可能使阅读变得比较枯燥,但是希望对那些谷歌搜索特定问题的人有用。

  1. 问题:- 双色球推荐一注流历史记录列表中显示错误消息“ System.Xml.XmlAttribute无法序列化”,并且双色球推荐一注流应按预期完成。在SharePoint日志中,将看到“解析完成之前遇到的流结束” error.

    更多信息:- 这是由于尝试存储无法序列化为双色球推荐一注流类的成员(例如,私有变量)的类引起的。此外,在存储代表InfoPath表单的类时,我也遇到了此错误-有趣的是,该类肯定总是可序列化的,但是该错误仍在发生。

    解析度:- 将成员标记为不可序列化(因此双色球推荐一注流不会 尝试 序列化该类,并将原始数据(例如字符串,日期等)从表单类中复制出来并复制到各个字段级变量中。也可以标记‘AnyAttr’而是将生成的类的成员作为NonSerializable。

  2. 问题:- 解决方案部署后,InfoPath表单不会更新-更改不会反映出来。

    更多信息:- 这是我最初开始开发时发生的。我注意到,如果我分别停用/卸载双色球推荐一注流功能,则InfoPath表单将成功更新。这使我想到了PostBuildActions.bat脚本的问题。

    解析度:- 修改PostBuildActions.bat以使用 -力 停用/卸载功能时的参数。

  3. 问题:- 错误消息“无法发送电子邮件。请确保服务器的传出电子邮件设置已正确配置。”在双色球推荐一注流程历史记录列表中显示。电子邮件配置良好(例如,警报正常)。

    更多信息:- 我怀疑有几种原因可能导致这种情况发生,但是对我来说,问题是我如何使用SendEmail活动。当我在SendEmail变量上设置属性时,双色球推荐一注流设计者已为我添加到类中,但出现了错误。

    解析度:- 我发现解决此问题的最佳方法是在传递给SendEmail的“ MethodInvoking”代码的对象上设置属性。您需要先强制转换为SendEmail,然后才能执行此操作。

  4. 问题:- 未填充CreateTask活动的TaskID。该值默认为-1。

    更多信息:- 在几种情况下,这将是一个问题。一个示例是在使用类似于Paul Hunt的代码的代码构建任务的URL(例如,包含在发送给用户的电子邮件中)时 http://suguk.org/forums/thread/4978.aspx.

    解析度:-仅当有存储值的位置时才会填充TaskID。确保CreateTask活动上的TaskID属性已绑定到变量。

  5. 问题:- 错误信息 "当任务在双色球推荐一注流中第二次执行时,SharePoint日志中将显示声明'x'的相关值已初始化”消息。

    更多信息:- 由于批准者拒绝双色球推荐一注流中的某些内容,当CreateTask第二次运行时,可能会发生这种情况。

    解析度:- 任务的相关令牌的“ OwnerActivtyName”设置不正确。在状态机双色球推荐一注流中,它应指的是特定状态,而不是整个双色球推荐一注流。

  6. 问题:- 当在设计器中注释了原本可以正常运行的双色球推荐一注流的某些部分时出现无法解释的错误(例如,“启动失败”)。

    更多信息:- You've commented out one or more activities in your 双色球推荐一注流程 (using right-click > Disable), but observe strange behaviour and/or errors. This is actually because, in contrast to commenting out source code, the code is actually still compiled into the assembly. Hence if there is an error with say, a correlation token being incorrectly set, this will still cause a problem in your 双色球推荐一注流程.

    解析度:- 解决问题或从双色球推荐一注流程中完全删除错误的活动。

为了完整起见,其他来源充分记录了一些其他常见问题:

  • “启动失败”-这通常是由于加载双色球推荐一注流程序集时引起的。检查PostBuildActions.bat脚本(或您使用的任何脚本)是否已将程序集正确部署到GAC,并且所有程序集属性(版本,公钥令牌等)都与功能文件中指定的属性匹配。
  • “ SPException:此任务当前被正在运行的双色球推荐一注流程锁定,无法编辑”消息。这记录在案 罗伯·博格 等,但我还要补充一点,这可能是另一个问题的连锁反应。如果在尝试处理任务时发生了较早的异常,则双色球推荐一注流将在第一次运行时锁定该任务,这意味着用户随后尝试响应该任务将导致此错误。除了从源头上解决问题之外,我还没有找到一种优雅的方式来处理此问题。

因此,希望它对双色球推荐一注流开发人员有所帮助。如果您还没有看过它,那么我有很多好处(示例代码,技巧和窍门等) 双色球推荐一注流程资源包 我在今年早些时候在UK 的SharePoint用户组中所做的双色球推荐一注流深入探讨中。

祝您编码愉快!

13条评论:

哈维尔说过...

克里斯,您好,您的博客很棒!恭喜你
我有一个问题要问,我在创建任务的方法调用中填充listitemid时遇到问题。创建任务活动在一段时间内,值为-1。
我不了解其他双色球推荐一注的成果。
你有什么建议吗?

克里斯·奥'Brien说过...

哈维尔

这看起来像我在上面列表中的问题4中讨论的问题(但针对其他属性)。我建议检查任务的ListItemID属性是否绑定到变量。

HTH,

克里斯。

匿名 said...

克里斯,你好

在尝试消除一个问题或另一个问题时,我多次浏览您的博客。您的双色球推荐一注确实确实很出色。非常感谢您的所有帮助。

洛基

匿名 said...

您的博客很棒。
我的问题是我建立了一个复杂的自定义双色球推荐一注流程,在“关联”表单中后面有代码。一切双色球推荐一注都很完美,直到我进行了一些更改,例如在Association表单后面修改了代码并添加了私有方法。
现在我看到一个错误说明
System.Xml.XmlAttribute在双色球推荐一注流历史记录日志中不可序列化
请帮忙..!

谢谢
多发性硬化症

克里斯·奥'Brien说过...

多发性硬化症,

这看起来就像我在第1期中讨论的问题。我认为您的新代码可能会将某些内容存储为无法序列化的私有变量。

作为测试,如果回滚代码会发生什么—问题消失了吗?

HTH,

克里斯。

匿名 said...

克里斯,

我遇到以下问题:
我的双色球推荐一注流WF1在list:A上,可在复制器的tasklist:B中创建多个任务。我的任务创建得很好,双色球推荐一注流程完成了。现在有了第二个双色球推荐一注流程WF2,当在任务列表B中添加新项目时该双色球推荐一注流程就开始了。问题是WF2永远不会启动。显然,WF1创建的任务使用的是内容类型“双色球推荐一注流程任务”,该内容类型无法看到与任何双色球推荐一注流程的关联。但是,如果我自己在任务列表:B中的内容类型“任务”中创建任务,则WF2可以正确启动并执行。你能帮忙吗?我尝试了几种方法,但无法解决!!

克里斯·奥'Brien说过...

普里扬卡

抱歉,我现在想不出任何关于这个的答案:-(

祝你好运

克里斯。

匿名 said...

您列出的双色球推荐一注流程问题的好清单。

最近,我遇到了一个奇怪的双色球推荐一注流程问题。将双色球推荐一注流任务重新分配给其他用户时发生了问题。

And eventually I found the resolution/workaround that is documented here. http://www.ekhichdi.com/sharepoint-blogs/the-user-who-attempted-to-complete-the-task-is-not-the-user-workflow-issue

拉胡尔·瓦塔克(Rahul Vartak)说过...

非常好的博客克里斯。主动记下所有面临的问题。

这是我在尝试使用SharePoint 2007状态机双色球推荐一注流时记录的步骤的列表。

http://rahul-vartak.blogspot.com/2010/07/sharepoint-2007-state-machine-workflows.html


希望这可以帮助..:)

匿名 said...

嗨,你能分享你的经验吗
我在SendEmail活动上有问题。双色球推荐一注流从Outlook接收电子邮件,创建公告列表项,然后将电子邮件发送给收件人。
我一次使用了以下选项:
//以下是传出电子邮件的属性
选项1:
_emailbody ="My email body 01";
_emailsubject ="My email subject 01";
_emailto ="xxx@yy.com";
_emailcc ="aaa@gmail.com";
_EmailBCC ="ggg@gmail.com";
_EmailFrom ="rr@yahoo.com";

选项2:
sendEmail1.CC ="xxx@aaa.com";
sendEmail1.Subject ="My email subject 01";
sendEmail1.Body ="My email body 01";
sendEmail1.To ="bb@aaa.com";
选项3:
SPUtility.SendEmail(workflowProperties.Web,true,false," bb@aaa.com ", "Subject 01", " 我的电子邮件正文01");

我第一次将电子邮件从Outlook发送到新的双色球推荐一注流项目时,双色球推荐一注流双色球推荐一注正常,并且可以正确接收和发送电子邮件。然后,当我更改外发电子邮件主题或正文并运行双色球推荐一注流时,它将发送原始主题和正文。从Outlook收到的电子邮件中创建列表项时,双色球推荐一注流会反复发送相同的电子邮件主题和电子邮件正文。
通过浏览器创建项目时,双色球推荐一注流程可以正常双色球推荐一注。我使用了正确的相关令牌。
请您能提出您的建议吗?
谢谢

克里斯·奥'Brien说过...

@匿名,

I'我不确定为什么会发生这种情况-可能是双色球推荐一注流程根据添加项目的方式采用了不同的路径吗?

另外,如果双色球推荐一注流发送的电子邮件应使用要添加的列表项中的值,则不应'您使用的是这些值(即来自双色球推荐一注流程属性.Item)而不是硬编码的字符串?

HTH,

克里斯。

匿名 said...

克里斯,谢谢您的博客。我的双色球推荐一注流程中有一个问题,我的CreateTaskWithContentType中的代码会完全执行,一旦退出,双色球推荐一注流程就会弯弯曲曲并显示消息"Error occured"我无法识别该错误。请帮助我。-AJit

克里斯·奥'Brien说过...

@Ajit,

ULS日志中还有更详细的信息吗?

谢谢,

克里斯。