Saya mencoba mengatakannya dengan kata lain.
Di server Anda dapat memiliki banyak situs asp.net yang berjalan bersama. Setiap situs adalah domain aplikasi .
Anda harus menetapkan satu kumpulan aplikasi untuk mereka masing-masing . Banyak domain aplikasi (situs) dapat memiliki kumpulan aplikasi yang sama, dan karena memiliki kumpulan aplikasi yang sama, domain aplikasi dijalankan di bawah proses yang sama, dan di bawah akun yang sama - dan memiliki pengaturan kumpulan yang sama. Jika pangkalan ini dimulai ulang, maka semua situs di bawah pangkalan itu akan dimulai ulang.
Sekarang setiap kumpulan dapat memiliki satu atau lebih proses pekerja . Setiap proses pekerja adalah program berbeda yang menjalankan situs Anda, memiliki variabel statisnya sendiri, panggilan mulai berhenti yang berbeda, dll. Proses pekerja yang berbeda tidak berkomunikasi bersama, dan satu-satunya cara untuk bertukar data adalah dari file umum atau database umum. Jika Anda memiliki lebih dari satu proses pekerja dan salah satunya membuat kalkulasi waktu yang lama, proses lainnya dapat menangani panggilan internet dan menampilkan konten.
Ketika Anda menetapkan banyak proses pekerja ke satu kumpulan maka Anda membuat yang disebut taman web dan situs Anda seperti dijalankan dari lebih dari satu komputer jika komputer adalah satu mesin pengolah.
Setiap proses pekerja dapat memiliki banyak utas.
Bagaimana lebih banyak proses pekerja memengaruhi Anda:
Ketika Anda memiliki satu proses pekerja, semuanya menjadi lebih sederhana, di antara aplikasi Anda semua variabel statis adalah sama, dan Anda menggunakan lock
untuk menyinkronkannya.
Ketika Anda menetapkan lebih dari satu proses pekerja, maka Anda masih terus menggunakan lock
untuk variabel statis, variabel statis tidak berbeda di antara banyak proses yang berjalan di situs Anda, dan jika Anda memiliki beberapa sumber daya yang sama (misalnya pembuatan thumbnail pada disk) maka Anda perlu menyinkronkan proses pekerja Anda dengan Mutex
.
Satu catatan lagi. Kedengarannya ketika Anda membuat lebih banyak proses pekerja maka Anda mungkin memiliki pemuatan halaman asinkron yang lebih lancar. Ada masalah kecil dengan penangan sesi asp.net yang mengunci seluruh proses untuk pemuatan halaman - itu bagus dan tidak baik tergantung apakah Anda mengetahuinya dan menanganinya - atau mengubahnya.
Jadi mari kita bicara tentang satu situs saja dengan banyak proses pengerjaan. Di sini Anda menghadapi masalah yang Anda perlukan untuk menyinkronkan perubahan sumber daya umum Anda Mutex
. Tetapi halaman / penangan yang menggunakan sesi mereka tidak asinkron karena sesi menguncinya. Ini bagus untuk memulai karena Anda menghindari sinkronisasi banyak titik ini sendiri.
Beberapa pertanyaan tentang topik ini:
Aplikasi web diblokir saat memproses aplikasi web lain saat berbagi sesi yang sama
Panggilan Ajax jQuery ke layanan web tampaknya sinkron
ASP.NET Server tidak memproses halaman secara asinkron
Mengganti sesi ASP.Net seluruhnya
Sekarang kunci sesi ini tidak memengaruhi situs yang berbeda.
Di antara situs yang berbeda, proses yang lebih berhasil dapat membantu untuk tidak memblokir satu situs yang lain dengan proses yang berjalan lama.
Juga di antara situs yang berbeda, lebih banyak kumpulan juga dapat membantu, karena setiap kumpulan memiliki setidaknya satu proses yang berfungsi, tetapi ingat dan lihat sendiri menggunakan penjelajah proses, setiap proses kerja membutuhkan lebih banyak memori komputer Anda, dan satu server besar dengan memori 16G dan satu server SQL tidak dapat memiliki terlalu banyak proses kerja yang berbeda - misalnya pada server dengan 100 situs bersama, Anda tidak dapat memiliki 100 kumpulan berbeda.