工作流程中的间歇性问题

时间:2019-05-29 10:38:15

标签: .net workflow

我们已经在dotnet应用程序中实现了工作流程。 该应用程序被全世界许多用户使用。 尝试提交一个活动的用户,活动被提升到下一阶段。 该操作有时会起作用,有时会失败。 当我从URL访问产品网站时,我没有任何错误。

我检查了生产日志 出现以下错误。 1.工作流中的OnUnhandledException 9493fd6e-8b2f-4870-8202-6ad1b433d819 事务(进程ID 58)已与另一个进程在锁资源上死锁,因此已被选择为死锁受害者。重新运行事务。

2。错误发生在#5/28/2019 3:14:27 PM 工作流程4275a513-444a-4083-afb4-c83697bbc164已中止。 异常:System.Activities.WorkflowApplicationAbortedException 由于Load或LoadRunnableInstance操作引发异常,WorkflowApplication已中止。创建一个新的WorkflowApplication对象以尝试加载另一个工作流实例

我曾尝试从数据库解锁锁定的实例,但问题仍然存在。 另外,当我尝试从开发环境调试工作流代码时,我没有得到正确的工作流服务URL。

string ResumeWFID = WorkflowID.Trim();                     字符串CommandAction =命令;

                string ResumeWorkflowURL = WorkflowServiceURL + "/" + Country + "/" + "ResumeWorkflow" + "/" + ResumeWFID + "/" + CommandAction;

                string PostParams = "\"" + LoggedInEID + "@#" + Code + "@#" + Comments  + "\"";

                //Post with WebClient UploadData
                byte[] postArray = Encoding.ASCII.GetBytes(PostParams);
                _WorkflowClient.Headers.Add(System.Net.HttpRequestHeader.ContentType, "application/json");
                byte[] responseBytes = _WorkflowClient.UploadData(ResumeWorkflowURL, postArray);
                string ResumeSuccess = Encoding.UTF8.GetString(responseBytes);

                if (bool.Parse(ResumeSuccess))
                {
                    //Dummy delay to finish the state transition // temp fix
                    System.Threading.Thread.Sleep(WorkflowConstants.TimerDelay2);

                }
                else
                {
                    return false;
                }
                //}
            }
            else
            {
                //Update the current state to Draft if there is no state updated before !
                qmsDAL.UpdateDefaultWorkPacketStatus(WPID, LoggedInEID);
            }

            //Log the details to Workflow log for the current WP ID
            // To be covered as part of WP Log Implementation
            // Logging Thru Workflow or Application ?

            return true;
        }
        catch (Exception ex)
        {
            Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
            return false;
        }

在行引发错误  byte [] responseBytes = _WorkflowClient.UploadData(ResumeWorkflowURL,postArray);

找不到生成的工作流程网址

0 个答案:

没有答案