2011-04-28 3 views
0

지속성 데이터베이스가있는 IIS5 (프로덕션 환경은 IIS6)에서 실행되는 WorkflowServiceApplication에서 내 워크 플로를 호스팅하고 있습니다. 요청/승인 서비스이므로 승인을 기다리는 동안 지연 (며칠)이 있으며 지연이 승인없이 통과하면 워크 플로는 승인자에게 전자 메일을 보냅니다. 나는 보류중인 워크 플로우가 새 요청 (즉, 새 워크 플로우 인스턴스)을 시작한 경우에만 "깨어나"자신의 전자 메일을 보냅니다. 나는 새로운 흐름을 시작할 때 인스턴스가 무언가를 재개하고 재개 할 인스턴스가 있는지 확인한다. 이전에 며칠이 아닌 단지 몇 분의 지연으로 테스트했기 때문에 문제를 발견했습니다. 아직 IIS6에서 시도하지는 않았지만 같은 것이 될 것으로 기대합니다.IIS5 및 6의 WorkflowServiceApplication에서 WF4 지연/재개

q1) 주기적으로 흐름을 확인하고 다시 시작하기 위해 콘솔 앱이나 기타 프로그램을 작성해야합니까? 그렇다면 누군가가 어떻게해야하는지 조언 할 수 있습니까? 아니면 방금 잘못 했나요?

질문 2 IIS7 및 AppFabric (가능할 수도 있음)을 사용하는 경우 Q1에 대한 대답이 "예, 작성해야합니다"라고 가정하면 잠자기/재개가 코드를 작성하지 않고도 작동합니다. 확인하고 흐름을 재개? 즉, 워크 플로 서비스를 AppFabric에 배포하면 제대로 작동합니까?

미리 감사드립니다.

답변

0

q1에 대한 대답은 '예'입니다. IIS AppDomain이 재생 된 후에는 외부 요청이있을 때까지 다시 시작되지 않습니다. 따라서 WorkflowServiceHost가 활성화되지 않고 만료되었습니다. 지연 작업이 다시 시작되지 않습니다. IIS 7 이전 버전에서는 WorkflowServiceHost를 사용할 수 있는지 확인하기 위해 외부 요청을 만들어야합니다. 이렇게하는 가장 쉬운 방법은 Windows 서비스가 주기적으로 WSDL 페이지를 검색하도록하는 것입니다.

IIS7 및 AppFabric로 업그레이드하면 IIS가 실행되는 즉시 자동으로 시작되도록 서비스를 구성 할 수 있으며 이는 동일한 문제를 처리합니다. AppFabric은 추적과 같은 많은 이점을 제공하므로이 옵션을 선호합니다.

+0

추가 질문 : IIS가 어떤 이유로 중지되면 워크 플로 서비스를 자동으로 다시 시작하기 위해 AppFabric이 있어야한다고 생각합니다. 하지만 AppFabric을 사용하지 않으면 IIS7에서 IIS가 실행되는 경우 지연된 흐름이 다시 시작됩니까? IIS가 멈 추면 어떻게 든 수동으로 흐름을 재개 할 수 있습니까? (나는 잠시 동안 다른 프로젝트를 시작 했으므로 다시 시작하려고합니다.) – Nix

+0

IIS 나 응용 프로그램 풀이 실행되지 않는다면 아무 것도 할 수 없기 때문에 다시 시작됩니다. WorkflowServiceHost가 실행 중인지 확인하고 만료 된 지연 작업을 다시 시작해야합니다. AppFabric을 사용하지 않으면 가장 쉬운 방법은 WSH를로드 할 때 WSH를로드하므로 서비스에서 WSDL을 주기적으로로드하는 다른 앱 (Windows 서비스)이 있어야합니다. – Maurice

+0

아하 덕분에, 우리가 wsdl 트릭을 피하려고했지만 App Fabric을 필요로하는 것처럼 들리지만, IT 부서는 AppFabric을 설치하는 방법을 정말로 모르고 있기 때문에 조금 주저합니다. AppFabric이 허용하는 별도의 서버 (SQL Server가 설치된 다른 서버가 이미 있음)에 내 지속성 저장소를 갖고 싶습니다. IIS7 상자에 SQL을 설치할 때 SQL을 설치해야합니다. – Nix

0

예 Windows Server AppFabric의 워크 플로 관리 서비스가 보류중인 타이머로 워크 플로를 깨울 것입니다. 당신은 다른 좋은 것들뿐만 아니라 무료로 이것을 얻습니다.