Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sampel SuspendedInstanceManagement menunjukkan cara mengelola instans alur kerja yang telah ditangguhkan. Tindakan default untuk WorkflowUnhandledExceptionBehavior adalah AbandonAndSuspend. Ini berarti bahwa secara default, pengecualian yang tidak tertangani yang dilemparkan dari instans alur kerja yang dihosting di WorkflowServiceHost akan menyebabkan instans tersebut dibuang dari memori sistem (ditinggalkan) dan versi dari instans tersebut yang tahan lama/bertahan akan ditandai sebagai ditangguhkan. Instans alur kerja yang ditangguhkan tidak akan dapat berjalan hingga diaktifkan kembali.
Sampel menunjukkan bagaimana utilitas baris perintah dapat diimplementasikan untuk mengkueri instans yang ditangguhkan, dan cara memberi pengguna opsi untuk melanjutkan atau mengakhiri instans. Dalam sampel ini, layanan alur kerja sengaja melemparkan pengecualian, menyebabkannya ditangguhkan. Utilitas baris perintah kemudian dapat digunakan untuk mengkueri instans dan kemudian melanjutkan atau mengakhiri instans.
Menunjukkan
WorkflowServiceHost dengan WorkflowUnhandledExceptionBehavior dan WorkflowControlEndpoint di Windows Workflow Foundation (WF).
Diskusi
Utilitas baris perintah yang diterapkan dalam sampel ini khusus untuk implementasi penyimpanan instans SQL yang dikirimkan dalam .NET Framework 4.6.1. Jika Anda memiliki implementasi kustom penyimpanan instans, maka Anda dapat menyesuaikan utilitas ini dengan mengganti implementasi WorkflowInstanceCommand dalam sampel dengan implementasi yang khusus untuk penyimpanan instans Anda.
Implementasi yang disediakan menjalankan perintah SQL terhadap penyimpanan instans SQL secara langsung untuk mencantumkan instans yang ditangguhkan, dan bergantung pada WorkflowControlEndpoint yang ditambahkan ke WorkflowServiceHost untuk melanjutkan atau mengakhiri instans.
Untuk menyiapkan, membangun, dan menjalankan sampel
Sampel ini mengharuskan komponen Windows berikut diaktifkan:
Server Antrean Pesan Microsoft (MSMQ)
SQL Server Express
Siapkan database SQL Server.
Dari prompt perintah Visual Studio, jalankan "setup.cmd" dari direktori sampel SuspendedInstanceManagement, yang melakukan hal berikut:
Membuat database persistensi menggunakan SQL Server Express. Jika database persistensi sudah ada, maka database tersebut dihilangkan dan dibuat ulang
Menyiapkan database dalam rangka persistensi.
Menambahkan IIS APPPOOL\DefaultAppPool dan NT AUTHORITY\Network Service ke peran InstanceStoreUsers yang ditentukan saat menyiapkan database untuk persistensi.
Siapkan antrean layanan.
Di Visual Studio, klik kanan proyek SampleWorkflowApp dan klik Atur sebagai Proyek Startup.
Kompilasi dan jalankan SampleWorkflowApp dengan menekan F5. Ini akan membuat antrean yang diperlukan.
Tekan Masukkan untuk menghentikan SampleWorkflowApp.
Buka konsol Manajemen Komputer dengan menjalankan Compmgmt.msc dari prompt perintah.
PerluasLayanan dan Aplikasi
, Antrean Pesan ,Antrean Privat .Klik kanan antrean
ReceiveTx dan pilih properti . Pilih tab Keamanan
dan izinkan Semua Orang memiliki izin untukMenerima Pesan ,Mengintip Pesan , danKirim Pesan .
Sekarang, jalankan sampel.
Di Visual Studio, jalankan proyek SampleWorkflowApp lagi tanpa debug dengan menekan Ctrl+F5. Dua alamat titik akhir akan dicetak di jendela konsol: satu untuk titik akhir aplikasi dan kemudian lainnya dari WorkflowControlEndpoint. Instans alur kerja kemudian dibuat, dan rekaman pelacakan untuk instans tersebut akan muncul di jendela konsol. Instans alur kerja akan melempar pengecualian yang menyebabkan instans ditangguhkan dan dibatalkan.
Utilitas baris perintah kemudian dapat digunakan untuk mengambil tindakan lebih lanjut pada salah satu instans ini. Sintaks untuk argumen baris perintah adalah sebagai berikut:
SuspendedInstanceManagement -Command:[CommandName] -Server:[ServerName] -Database:[DatabaseName] -InstanceId:[InstanceId]Perintah yang didukung adalah:
Query,Resume, danTerminate. Sakelar InstanceId hanya diperlukan untuk operasiResumedanTerminate.
Untuk membersihkan (Opsional)
Buka konsol Manajemen Komputer dengan menjalankan Compmgmt.msc.
PerluasLayanan dan Aplikasi
, Antrean Pesan ,Antrean Privat .Hapus antrean ReceiveTx.
Untuk menghapus database persistensi, jalankan cleanup.cmd.