Opcje hostowania przepływu pracy
Większość przykładów programu Windows Workflow Foundation (WF) używa przepływów pracy hostowanych w aplikacji konsolowej, ale nie jest to realistyczny scenariusz dla rzeczywistych przepływów pracy. Przepływy pracy w rzeczywistych aplikacjach biznesowych będą hostowane w procesach trwałych — usługi systemu Windows utworzonej przez dewelopera lub aplikacji serwera, takiej jak IIS 7.0 lub AppFabric. Różnice między tymi podejściami są następujące.
Hostowanie przepływów pracy w usługach IIS za pomocą programu Windows AppFabric
Używanie usług IIS z aplikacją AppFabric jest preferowanym hostem dla przepływów pracy. Aplikacja hosta dla przepływów pracy korzystających z programu AppFabric to usługa aktywacji systemu Windows, która usuwa zależność od protokołu HTTP za pośrednictwem samych usług IIS.
Hostowanie przepływów pracy w samych usługach IIS
Używanie samych usług IIS 7.0 nie jest zalecane, ponieważ dostępne są narzędzia do zarządzania i monitorowania w programie AppFabric, które ułatwiają konserwację uruchomionych aplikacji. Przepływy pracy powinny być hostowane tylko w usługach IIS 7.0, jeśli występują problemy z infrastrukturą podczas przechodzenia do aplikacji AppFabric.
Ostrzeżenie
Usługi IIS 7.0 okresowo przetwarzają pule aplikacji z różnych powodów. Gdy pula aplikacji jest odzyskiwanych, usługi IIS przestają akceptować komunikaty w starej puli i tworzy wystąpienie nowej puli aplikacji w celu akceptowania nowych żądań. Jeśli przepływ pracy będzie nadal działać po wysłaniu odpowiedzi, usługi IIS 7.0 nie będą wiedzieć o zakończeniu pracy i mogą odtwarzać pulę aplikacji hostingu. W takim przypadku przepływ pracy zostanie przerwany, a usługi śledzenia będą rejestrować komunikat 1004 — WorkflowInstanceAborted z pustym polem Przyczyna.
Jeśli jest używana trwałość, host musi jawnie ponownie uruchomić przerwane wystąpienia z ostatniego punktu trwałości.
Jeśli jest używany program AppFabric, usługa zarządzania przepływem pracy w końcu wznowi przepływ pracy z ostatniego pomyślnego punktu trwałości, jeśli jest używana trwałość. Jeśli nie jest używana trwałość, a przepływ pracy wykonuje operacje poza wzorcem żądania/odpowiedzi, dane zostaną utracone po przerwaniu przepływu pracy.
Hostowanie przepływu pracy w niestandardowej usłudze systemu Windows
Utworzenie niestandardowej usługi przepływu pracy do hostowania przepływu pracy będzie wymagało od dewelopera duplikowania dużej ilości funkcji udostępnionych przez aplikację AppFabric, ale pozwoli na większą elastyczność dzięki niestandardowym funkcjom. Ta opcja powinna być brana pod uwagę tylko wtedy, gdy appFabric okaże się nie być opcją.