Select the product you need help with
Pertengkaran, kinerja yang buruk dan kebuntuan ketika Anda membuat panggilan ke Layanan Web dari aplikasi ASP.NETID Artikel: 821268 - Melihat produk di mana artikel ini berlaku. Pada Halaman iniGejalaKetika Anda membuat panggilan ke Layanan Web dari Microsoft ASP.NET aplikasi, Anda mungkin mengalami pertengkaran, kinerja yang buruk dan kebuntuan. Klien dapat melaporkan bahwa permintaan berhenti merespons (atau "hang") atau mengambil waktu yang sangat lama untuk mengeksekusi. Jika kebuntuan diduga, proses pekerja mungkin daur ulang. Anda mungkin menerima pesan berikut di log aktivitas aplikasi.
"System.InvalidOperationException:
Tidak ada thread gratis cukup dalam objek ThreadPool untuk menyelesaikan
operasi." "HttpException (0x80004005): permintaan timed
keluar." PenyebabMasalah ini mungkin terjadi karena ASP.NET membatasi nomor
Thread pekerja dan penyelesaian port benang yang panggilan dapat digunakan untuk mengeksekusi
permintaan. Biasanya, panggilan untuk Layanan Web menggunakan satu thread pekerja untuk mengeksekusi kode yang mengirim permintaan dan satu penyelesaian port thread untuk menerima panggilan balik dari Layanan Web. Namun, jika permintaan diarahkan atau memerlukan otentikasi, panggilan dapat menggunakan sebanyak dua thread pekerja dan dua penyelesaian port benang. Oleh karena itu, Anda dapat buang ThreadPool dikelola ketika beberapa Layanan Web panggilan terjadi pada waktu yang sama. Misalnya, bahwa ThreadPool terbatas untuk 10 thread pekerja dan bahwa semua thread pekerja 10 saat ini yang mengeksekusi kode yang menunggu untuk callback untuk mengeksekusi. Callback bisa pernah menjalankan, karena setiap item pekerjaan yang antri untuk ThreadPool diblokir sampai thread menjadi tersedia. Potensial lain sumber pertikaian adalah parameter maxconnection yang menggunakan System.Net namespace untuk membatasi jumlah koneksi. Umumnya, batas ini bekerja seperti yang diharapkan. Namun, jika banyak aplikasi mencoba untuk membuat banyak permintaan untuk satu alamat penyuratan IP pada saat yang sama, benang mungkin harus menunggu koneksi yang tersedia. Pemecahan masalahUntuk mengatasi masalah ini, Anda dapat menyetel parameter berikut di file Machine.config untuk terbaik sesuai dengan situasi Anda:
maxWorkerThreads dan maxIoThreadsASP.NET menggunakan pengaturan konfigurasi dua berikut untuk membatasi jumlah maksimum thread pekerja dan penyelesaian benang yang digunakan:2 * maxWorkerThreads minFreeThreads dan minLocalRequestFreeThreadsASP.NET juga berisi konfigurasi berikut pengaturan yang menentukan berapa banyak thread pekerja dan penyelesaian port benang harus tersedia untuk memulai permintaan remote atau lokal permintaan: (maxWorkerThreads*jumlah CPU)-minFreeThreads CatatanMinFreeThreads parameter dan minLocalRequestFreeThreads parameter yang tidak secara implisit dikalikan dengan jumlah CPU.minWorkerThreadsASP.NET 1.0 Service Pack 3 dan ASP.NET 1.1, ASP.NET juga berisi pengaturan konfigurasi berikut yang menentukan bagaimana banyak pekerja benang dapat dibuat tersedia segera untuk layanan remote permintaan.maxconnectionMaxconnection parameter menentukan berapa banyak koneksi dapat dibuat untuk alamat penyuratan IP tertentu. Parameter muncul sebagai berikut:executionTimeoutASP.NET menggunakan pengaturan konfigurasi berikut untuk batas waktu eksekusi permintaan:Catatan Jika Anda meningkatkan nilai executionTimeout parameter, Anda mungkin juga harus memodifikasi processModel responseDeadlockInterval pengaturan parameter. RekomendasiPengaturan yang disarankan di bagian ini tidak dapat bekerja untuk Semua aplikasi. Namun, informasi tambahan berikut dapat membantu Anda untuk membuat penyesuaian yang tepat.Jika Anda membuat satu Web layanan panggilan ke satu alamat penyuratan IP dari setiap halaman ASPX, Microsoft menganjurkan bahwa Anda menggunakan pengaturan konfigurasi berikut:
Catatan Ketika Anda menggunakan konfigurasi ini, Anda bisa menjalankan maksimal 12 ASP.NET permintaan per CPU pada saat yang sama karena 100-88 = 12. Oleh karena itu, setidaknya 88 *N pekerja benang dan 88 *N penyelesaian port benang tersedia untuk lain menggunakan (seperti Web Layanan callback). Sebagai contoh, Anda memiliki sebuah server dengan empat prosesor dan hyperthreading diaktifkan. Berdasarkan rumus ini, Anda akan menggunakan nilai berikut untuk pengaturan konfigurasi yang disebutkan dalam artikel ini. Juga, ketika Anda menggunakan konfigurasi ini, sambungan 12 tersedia per CPU per alamat penyuratan IP untuk setiap AppDomain. Oleh karena itu, dalam berikut skenario, sangat sedikit pertikaian terjadi ketika permintaan sedang menunggu sambungan, dan ThreadPool tidak habis:
Status Ini
perilaku adalah dengan desain. Informasi lebih lanjutJika Anda mengalami kinerja yang buruk dan pertikaian mengenai IIS 7,0 bersama dengan ASP.NET, pergi ke blog Microsoft berikut: ASP.NET Thread penggunaan IIS 7,5, IIS 7,0 dan IIS 6.0
(http://blogs.msdn.com/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx)
ASP.net menggantung di IIS 7,0
(http://blogs.msdn.com/webtopics/archive/2009/02/13/asp-net-hang-in-iis-7-0.aspx)
ReferensiUntuk informasi lebih lanjut, kunjungi website Microsoft Developer Network (MSDN) berikut: Meningkatkan kinerja ASP.NET
(http://msdn2.microsoft.com/en-us/library/ms998549.aspx)
PropertiID Artikel: 821268 - Kajian Terakhir: 06 Februari 2013 - Revisi: 3.0
Penerjemahan Mesin PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah. Klik disini untuk melihat versi Inggris dari artikel ini: 821268
(http://support.microsoft.com/kb/821268/en-us/
)
| Terjemahan Artikel
|




Kembali ke atas








