Кто-нибудь знает, можно ли разместить собственное приложение WorkflowServiceHost в IIS, не превращая его в файл XAMLX? Если да, то как?
Кроме того, есть ли у кого-нибудь хорошие рекомендации по развертыванию файлов XAMLX в целом в IIS 7?
Заранее спасибо
1 ответ
Вы можете сделать то же самое, написав свой собственный механизм хостинга вместо 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();
Это немного больше, чем только вышеизложенное, но оно дает основные концепции того, как это будет работать.
ИЗМЕНИТЬ (23 марта 2011 г.)
Если кому-то нужна копия базового кода для этого, найдите способ связаться со мной.
Похожие вопросы
Связанные вопросы
Новые вопросы
wcf
Windows Communication Foundation является частью .NET Framework, которая предоставляет унифицированную модель программирования для быстрого создания сервис-ориентированных приложений.