2011-03-04 5 views
1

IIS에서 자체 호스팅 WorkflowServiceHost 응용 프로그램을 XAMLX 파일로 변환하지 않고 호스팅 할 수 있는지 알고있는 사람이 있습니까? 그렇다면 어떻게?IIS에서 자체 호스팅 WF 호스팅

또한 누구나 일반적으로 IIS 7에 XAMLX 파일을 배포하기위한 좋은 지침이 있습니까? 자신의 호스팅 엔진을 쓰는 대신 XAMLX 하나 사전

+0

자기 호스팅이란 무엇을 의미합니까? 일단 자체 호스팅하면 왜 다시 호스팅해야합니까? –

+0

죄송합니다. 어떻게 혼란스러워하는지 봅니다. 나가 의미하는 것은 나는 자체 호스팅되는 서비스를 작성했지만 IIS 대신 건강 모니터링 등을 활용하기 위해 지금 호스트하기를 원한다. 나는 이것에 대해 가장 쉬운 방법을 알 필요가있다. – Ian

답변

3

같은 기본적인 일을 할 수있는

감사합니다. 그런 다음 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일)

사람이 작업을 수행 할 수있는 기본 코드의 사본을 원하는 경우에, 저에게 연락 할 수있는 방법을 찾을 수 있습니다.

관련 문제