Мы реализовали рабочий процесс в приложении dotnet.Приложение используется многими пользователями по всему миру.пользователь пытается отправить одно действие, и действие переводится на следующий этап.Это действие иногда работает, а иногда терпит неудачу.когда я захожу на сайт prod с URL, я не получаю никакой ошибки.
Я проверил журналы на производстве, получая следующие ошибки.1.OnUnhandledException в рабочем процессе 9493fd6e-8b2f-4870-8202-6ad1b433d819 Транзакция (идентификатор процесса 58) была заблокирована для ресурсов блокировки с другим процессом и была выбрана в качестве жертвы тупика.Повторите транзакцию.
2.Ошибка произошла в # 5/28/2019 15:14:27 Рабочий процесс 4275a513-444a-4083-afb4-c83697bbc164 Прервано.Исключение: System.Activities.WorkflowApplicationAbortedException WorkflowApplication был прерван, поскольку операция Load или LoadRunnableInstance вызвала исключение.Создайте новый объект WorkflowApplication, чтобы попытаться загрузить другой экземпляр рабочего процесса
Я попытался разблокировать заблокированный экземпляр из БД, но проблема все еще сохраняется.Также, когда я пытаюсь отладить код рабочего процесса из среды разработки, я не получаю правильный URL-адрес службы рабочего процесса.
string ResumeWFID = WorkflowID.Trim ();string CommandAction = command;
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;
}
ошибка, выданная в байте строки [] responseBytes = _WorkflowClient.UploadData (ResumeWorkflowURL, postArray);
Сгенерированный URL-адрес рабочего процесса не найден