Размещение собственного WF в IIS - PullRequest
1 голос
/ 04 марта 2011

Кто-нибудь знает, возможно ли разместить в IIS собственное приложение WorkflowServiceHost, не превращая его в файл XAMLX?Если да, то как?

Кроме того, есть ли у кого-нибудь хорошие рекомендации по развертыванию файлов XAMLX в целом в IIS 7?

Заранее спасибо

1 Ответ

3 голосов
/ 22 марта 2011

Вы можете сделать то же самое, написав собственный движок хостинга вместо XAMLX.После этого вы можете загружать приложения через ASP.NET, но иметь полный контроль над его продолжительностью жизни / жизненным циклом.

Вам необходимо создать свой собственный хост, чтобы загружать рабочие процессы .XAML в нечто вроде WorkflowApplication и управлятьсрок службы этого рабочего процесса.Это выглядит примерно так:

private SqlWorkflowInstanceStore _InstanceStore { get; private set; }
private InstanceHandle _MyInstanceHandle { get; private set; }

_InstanceStore = new SqlWorkflowInstanceStore(DataStore.ConnectionString.Replace("MultipleActiveResultSets=True", "MultipleActiveResultSets=False"));
_InstanceStore.HostLockRenewalPeriod = new TimeSpan(0, 0, 30);
_InstanceStore.InstanceEncodingOption = InstanceEncodingOption.None;
_InstanceStore.InstanceLockedExceptionAction = InstanceLockedExceptionAction.BasicRetry;
_InstanceStore.InstanceCompletionAction = InstanceCompletionAction.DeleteNothing;

_MyInstanceHandle = _InstanceStore.CreateInstanceHandle();
var CreateOwnerCommand = new CreateWorkflowOwnerCommand();
var MyView = _InstanceStore.Execute(_MyInstanceHandle, CreateOwnerCommand, TimeSpan.FromSeconds(30));
_InstanceStore.DefaultInstanceOwner = MyView.InstanceOwner;

WorkflowApplication ThisApplication = null;

if (parameters == null)
    ThisApplication = new WorkflowApplication(activity);
else
    ThisApplication = new WorkflowApplication(activity, parameters);
ThisApplication.PersistableIdle = e => PersistableIdleAction.Unload;
ThisApplication.InstanceStore = this.InstanceStore;
ThisApplication.Run();

Существует немного больше, чем просто выше, но это дает основные понятия о том, как это будет работать.

EDIT (23.03.2011)

Если кому-то нужна копия базового кода для этого, найдите способ связаться со мной.

...