Отладочный кодированный WorkflowServiceHost
Можно ли отлаживать закодированный WorkflowServiceHost Windows Workflow.Net 4.0.1? я имею
<system.web>
<compilation debug="true" />
</system.web>
установить в файле app.config. Однако всякий раз, когда я устанавливаю точку останова, отладчик останавливается в момент, когда создается объект WorkflowServiceHost, а не когда отдельный экземпляр рабочего процесса достигает точки останова.
Под "закодированным" я подразумеваю, что рабочий процесс указан в C#, а не в визуальном конструкторе.
2 ответа
Я был в аналогичном положении с различными блок-схемами и последовательными рабочими процессами, размещенными в разных контейнерах. Я обнаружил, что использование платформы Microsoft.Activities.UnitTesting значительно упростило мою жизнь, когда дело доходит до тестирования рабочих процессов. Библиотека доступна в виде пакета nuGet. Завершите детали здесь
Это позволяет очень легко запускать рабочие процессы на "тестовых хостах", которые представляют собой специальные классы, которые предоставляют возможность запускать рабочие процессы, как они обычно выполняются в workflowinvoker, workflowservicehost и т. Д., Но предлагают широкий набор функций, которые позволяют отлаживать, отслеживать ваши рабочие процессы.
Начать легко, загруженные образцы уже предоставлены (включая образцы для тестирования службы рабочих процессов, на которых размещены рабочие процессы).
Я настоятельно рекомендую использовать эту библиотеку, так как у нее нет кривой обучения, и она позволяет очень легко тестировать рабочие процессы.
Надеюсь это поможет.
Одно предостережение: убедитесь, что у вас установлена .NET Framework 4 Platform Update 1, если вы планируете его использовать. Более подробная информация об этом обновлении доступна здесь
Ваш dll Workflow находится в другом проекте?
MSDN говорит
Если хост-приложение рабочего процесса и DLL рабочего процесса находятся в разных проектах Visual Studio, например, когда вы используете библиотеку действий рабочего процесса, вы должны установить проект DLL рабочего процесса в качестве проекта запуска решения Visual Studio для отладки рабочего процесса с помощью F5. Необходимо также указать путь к хост-приложению в свойстве Start внешней программы проекта DLL рабочего процесса.
Чтобы установить стартовый проект в обозревателе решений, щелкните правой кнопкой мыши имя проекта и выберите "Установить как стартовый проект". Чтобы указать путь к хосту в свойстве "Запустить внешнюю программу", дважды щелкните узел "Свойства" проекта рабочего процесса в обозревателе решений и выберите вкладку "Отладка". В разделе "Начать действие" выберите "Запустить внешнюю программу" и введите путь к файлу.exe, в котором находится рабочий процесс, который вы хотите отладить.
Если хост-приложение установлено в качестве запускаемого проекта, для отладки вызывается только отладчик Visual Studio; отладчик Visual Studio 2010 для Windows Workflow Foundation не вызывается. Если используется отладчик Visual Studio, удаляются только точки останова кода C# или Visual Basic; Точки останова, установленные в конструкторе рабочих процессов, не удаляются. Например, точка останова, заданная для действия ParallelActivity в конструкторе, будет достигнута, если используется отладчик Visual Studio 2010 для Windows Workflow Foundation, но не при использовании отладчика Visual Studio.
Посмотрите, поможет ли это вам.