我在Visual Studio中创建了一个自定义的Sharepoint工作流活动,它在我的测试环境中正常工作和记录,但在生产中因工作流历史记录列表中的通用“错误发生”消息而失败。
为了调试活动(因为针对生产的远程调试是最后的手段),我实施了逐步记录到工作流历史列表以查看它失败的地方,但却发现它似乎在第一次记录发生之前达到错误状态。我一直在使用try-catch来捕获异常并将其记录到列表中。仍然没有记录历史列表。
在此阶段,使用以下代码完成日志记录:
SPWeb spWeb = (SPWeb)__Context.Web;
SPWorkflow.CreateHistoryEvent(spWeb, this.WorkflowInstanceId, 0, spWeb.CurrentUser, new TimeSpan(), "Update", "message here", string.Empty);
其中spWeb是工作流上下文的Sharepoint Web。再次,这可以在测试中使用。
下一步是使用具有通用Exception类型和Sharepoint的LogToHistoryList活动的错误处理。没有骰子。我还尝试了http://www.sharepointsecurity.com/sharepoint/sharepoint-2007-development/fault-handling-in-sharepoint-workflows/中概述的故障处理选项,其中包含相同的通用“错误发生”结果,并且历史列表中没有其他日志记录。
我的问题是 1)有没有人知道什么会导致错误处理程序不在生产中调用(如果我以编程方式抛出错误,还在测试中工作)? 2)我还能做些什么来尝试找出活动出错的地方而没有实际远程调试活动?
提前致谢!
答案 0 :(得分:0)
事实证明,日志已关闭,这在某种程度上阻止了错误处理程序登录到事件历史记录表(或者至少,似乎将日志记录恢复为神奇地修复了问题)。事实证明,生产服务器上没有安装.NET 3.5框架。