Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SuspendedInstanceManagement örneği askıya alınmış iş akışı örneklerinin nasıl yönetileceğini gösterir.
WorkflowUnhandledExceptionBehavior için varsayılan eylem AbandonAndSuspend. Varsayılan olarak, WorkflowServiceHost'da barındırılan bir iş akışı örneğinden atılan işlenmemiş istisnalar, örneğin bellekten çıkarılması (terk edilmesi) ve örneğin dayanıklı/kalıcı sürümünün askıya alınmış olarak işaretlenmesine neden olur. Askıya alınmış bir iş akışı örneği, askıdan kaldırılmadıkça çalıştırılamaz.
Örnek, askıya alınan örnekleri sorgulamak için bir komut satırı yardımcı programının nasıl uygulanabileceğini ve kullanıcıya örneği sürdürme veya sonlandırma seçeneği sağlamayı gösterir. Bu örnekte, bir iş akışı hizmeti kasıtlı olarak bir özel durum oluşturarak askıya alınmasına neden olur. Komut satırı yardımcı programı daha sonra örneği sorgulamak ve daha sonra örneği sürdürmek veya sonlandırmak için kullanılabilir.
Gösterir
Windows Workflow Foundation'da (WF) WorkflowServiceHost ile WorkflowUnhandledExceptionBehavior ve WorkflowControlEndpoint.
Tartışma
Bu örnekte uygulanan komut satırı yardımcı programı, .NET Framework 4.6.1'de gelen SQL örnek deposu uygulamasına özgüdür. Örnek deposunun özel bir uygulamasına sahipseniz, örnekteki WorkflowInstanceCommand uygulamalarını örnek deponuza özgü uygulamalarla değiştirerek bu yardımcı programı uyarlayabilirsiniz.
Sağlanan uygulama, askıya alınan örnekleri listelemek için SQL örnek deposunda SQL komutlarını doğrudan çalıştırır ve örnekleri yeniden başlatmak veya sonlandırmak için WorkflowControlEndpoint'e eklenen bir WorkflowServiceHost'a dayanır.
Örneği ayarlamak, derlemek ve çalıştırmak için
Bu örnek, aşağıdaki Windows bileşenlerinin etkinleştirilmesini gerektirir:
Microsoft İleti Kuyrukları (MSMQ) Sunucusu
SQL Server Express
SQL Server veritabanını ayarlayın.
Visual Studio komut isteminde, Aşağıdaki işlemi yapan SuspendedInstanceManagement örnek dizininden "setup.cmd" komutunu çalıştırın:
SQL Server Express kullanarak bir kalıcılık veritabanı oluşturur. Kalıcılık veritabanı mevcutsa silinir ve yeniden oluşturulur.
Veritabanını kalıcılık için ayarlar.
Veritabanını kalıcılık için ayarlarken tanımlanan InstanceStoreUsers rolüne IIS APPPOOL\DefaultAppPool ve NT AUTHORITY\Network Service ekler.
Hizmet kuyruğu ayarlayın.
Visual Studio'da SampleWorkflowApp projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarlaseçeneğine tıklayın.
F5tuşlarına basarak SampleWorkflowApp'i derleyin ve çalıştırın. Bu, gerekli kuyruğu oluşturur.
SampleWorkflowApp'i durdurmak için enter
basın. Komut isteminden Compmgmt.msc dosyasını çalıştırarak Bilgisayar Yönetimi konsolunu açın.
Hizmet ve Uygulamalargenişletin, İleti Kuyruğa Alma, Özel Kuyruklar.
ReceiveTx kuyruğuna sağ tıklayın ve Özellikleröğesini seçin.
Güvenlik sekmesini seçin veHerkes İleti Alma,İleti göz atma ve İleti Gönderizinlerine sahip olmasını sağlayın.
Şimdi örneği çalıştırın.
Visual Studio'da, Ctrl+F5tuşlarına basarak SampleWorkflowApp projesini hata ayıklamadan yeniden çalıştırın. Konsol penceresine iki uç nokta adresi yazdırılır: biri uygulama uç noktası için, diğeri de WorkflowControlEndpoint. Daha sonra bir iş akışı örneği oluşturulur ve bu örneğe ilişkin izleme kayıtları konsol penceresinde görünür. İş akışı örneği, istisna fırlatarak örneğin askıya alınmasına ve iptal edilmesine neden olacaktır.
Komut satırı yardımcı programı daha sonra bu örneklerden herhangi birinde daha fazla işlem yapmak için kullanılabilir. Komut satırı bağımsız değişkenlerinin söz dizimi aşağıdaki gibidir:
SuspendedInstanceManagement -Command:[CommandName] -Server:[ServerName] -Database:[DatabaseName] -InstanceId:[InstanceId]Desteklenen komutlar şunlardır:
Query,ResumeveTerminate. InstanceId anahtarı yalnızcaResumeveTerminateişlemleri için gereklidir.
Temizlemek için (İsteğe bağlı)
Compmgmt.msc dosyasını çalıştırarak Bilgisayar Yönetimi konsolunu açın.
Hizmet ve Uygulamalargenişletin, İleti Kuyruğa Alma, Özel Kuyruklar.
ReceiveTx kuyruğu silin.
Kalıcılık veritabanını kaldırmak için cleanup.cmd çalıştırın.