1
有谁知道是否可以在IIS中托管自托管的WorkflowServiceHost应用程序而无需将其转换为XAMLX文件?如果是这样,怎么样?在IIS中托管自托管的WF
此外,没有任何人有在一般部署XAMLX文件到IIS 7的任何良好的指引?
在此先感谢
有谁知道是否可以在IIS中托管自托管的WorkflowServiceHost应用程序而无需将其转换为XAMLX文件?如果是这样,怎么样?在IIS中托管自托管的WF
此外,没有任何人有在一般部署XAMLX文件到IIS 7的任何良好的指引?
在此先感谢
你可以做同样的基本的东西写你自己的托管引擎,而不是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(2011年3月23日)
如果有人想基本的代码来做到这一点的副本,找到一个方法来与我联系。
你是什么意思自我托管?一旦它被自己托管,为什么要再次托管它? – 2011-03-04 10:28:18
对不起,我看到它是如何令人困惑。我的意思是我写了一个自托管的服务,但我想现在托管它,而不是在IIS下利用健康监控等。我需要知道最简单的方法。 – Ian 2011-03-07 09:17:04