Makale numarası: 821268 - Son Gözden Geçirme: 28 Temmuz 2009 Salı - Gözden geçirme: 11.0 ASP.NET uygulamaları Web hizmet istekleri yaptığınızda kilitlenmeleri Çekişme ve düşük performans
Bu SayfadaBelirtilerBir ASP.NET XML Web Hizmetleri için görüşmeleri yaptığınız uygulama, Çekişme ve düşük performans kilitlenmeleri karşılaşabilirsiniz. Istemci isteklerine yanıt (veya "askıda") veya yürütmek için çok uzun zaman alıyor bildirebilir. Kilitlenme şüphelenildi, alt işlemin geri dönüştürülmeden olabilir. Uygulama olay günlüğünde, aşağıdaki iletileri alabilirsiniz.
“ Iletisi: mevcut değildi yeterli boş iş parçacığı işlemi tamamlamak için havuzu nesnesinde. ” “ HttpException (0x80004005): istek zaman aşımına uğradı. ” NedenASP.NET çalışan iş parçacıkları ve bir çağrı istekleri yürütmek için kullanabileceğiniz tamamlanma bağlantı noktası iş parçacığı sayısını sınırlar, çünkü bu sorun oluşabilir. Genellikle, bir Web hizmeti çağrısı isteği gönderen kod yürütmek için bir çalışan iş parçacığı bir tamamlama bağlantı noktasına iş Web hizmetinden geri almak için kullanır. Ancak, isteği yeniden yönlendirilip veya kimlik doğrulaması gerektiriyor, arama olarak iki alt ve iki tamamlama bağlantı iş parçacığını kullanabilir. Bu nedenle, aynı anda birden çok Web hizmeti çağrıları ortaya çıktığında yönetilen havuzu tüketebileceği. Örneğin, 10 işçi iş parçacığı için havuzu sınırlıdır ve tüm 10 çalışan iş parçacıkları, kod yürütmek bir geri arama için bekleniyor yürütülmekte olduğunu varsayalım. Bir iş parçacığı kullanılabilir hale gelinceye kadar için havuzu için sıraya alınan çalışma öğeleri engellenir, çünkü geri hiçbir zaman çalıştırabilirsiniz. Başka bir olası kaynağı çekişmesi System.Net ad bağlantı sayısı sınırı için kullandığı bir maxconnection parametresidir. Genellikle bu sınır, beklendiği gibi çalışır. Birçok uygulama, çok sayıda istek aynı anda tek bir IP adresi sağlamak çalışırsanız, ancak iş parçacığı kullanılabilir bir bağlantı için beklemeniz gerekebilir. ÇözümBu sorunları gidermek için <a0></a0>, en iyi durumunuza uyması için Machine.config dosyasında aşağıdaki parametreleri ayarlamak:
maxWorkerThreads ve MaxıothreadsASP.NET çalışan iş parçacığı ve kullanılan tamamlanma iş parçacığı sayısının sayısını sınırlamak için aşağıdaki iki yapılandırma ayarlarını kullanır:2 * maxWorkerThreads minFreeThreads ve minLocalRequestFreeThreadsASP.NET, işçi iş parçacığı ve tamamlama bağlantı iş parçacığı sayısını Uzak isteği'ni veya yerel isteği'ni başlatmak kullanılabilir olmalıdır belirleyen aşağıdaki yapılandırma ayarlarını da içerir:(maxWorkerThreads * number of CPUs)-minFreeThreads NotMinFreeThreads parametresi ve minLocalRequestFreeThreads parametresi örtülü olarak CPU sayısı ile çarpımı değil.minWorkerThreadsASP.NET, ASP.NET 1.1 ve ASP.NET 1.0 Service Pack 3 olarak da kaç alt iş parçacığı hemen Uzak isteği hizmet kullanılabilir yapılabilir belirleyen aşağıdaki yapılandırma ayarı içerir.maxconnectionKaç bağlantı belirli bir IP adresine yapılan maxconnection parametre belirler. Parametre aşağıdaki gibi görünür:executionTimeoutASP.NET istek yürütme süresi sınırlamak için aşağıdaki yapılandırma ayarını kullanır:NotExecutionTimeout parametrenin değerini artırırsanız, processModel responseDeadlockInterval parametre ayarını değiştirmeniz gerekebilir. ÖnerilerBu bölümde önerilen ayarları, tüm uygulamalar için çalışmayabilir. Ancak, aşağıdaki ek bilgileri ilgili düzenlemeler için yardımcı olabilir.Bir Web hizmeti çağrısı tek bir IP adresi için her <a0>ASPX</a0> sayfasından yapıyorsanız, Microsoft, aşağıdaki yapılandırma ayarlarını kullanmanızı önerir:
Not Bu yapılandırmayı kullandığınızda, istediğiniz en fazla 12 ASP.NET istekleri CPU başına aynı anda çünkü çalıştırabilirsiniz 100 88 12 =. Bu nedenle, en az 88 * N işçi iş parçacığı ve 88 * N tamamlama bağlantı noktasına iş parçacıkları diğer kullanır (örneğin Web hizmet geri aramalar için) için kullanılabilir. Örneğin, dört işlemciler ve hiper iş parçacığı etkin olan bir sunucu vardır. Üzerinde bu formülleri bağlı olarak, bu makalede açıklanan yapılandırma ayarları için aşağıdaki değerleri kullanırsınız. Bu yapılandırmayı kullandığınızda, aynı zamanda, 12 bağlantıları CPU her IP adresi her AppDomain için kullanılabilir. Bu nedenle, bağlantılar için bekleyen istekleri ve havuzu adres kalmadı çok az çekişme aşağıdaki senaryoda oluşur:
DurumBu davranış tasarım yüzündendir. Daha fazla bilgiDüşük performans ve Çekişme üzerinde IIS 7. 0'da ASP.NET ile karşılaşıyorsanız, aşağıdaki Microsoft Web günlükleri Bkz: IIS 7.0 ve 6.0, ASP.NET iş parçacığı kullanımı http://blogs.msdn.com/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx
(http://blogs.msdn.com/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx)
IIS 7.0 içindeki ASP.NET askıda kalıyorhttp://blogs.msdn.com/webtopics/archive/2009/02/13/asp-net-hang-in-iis-7-0.aspx
(http://blogs.msdn.com/webtopics/archive/2009/02/13/asp-net-hang-in-iis-7-0.aspx)
ReferanslarDaha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin: http://msdn2.microsoft.com/en-us/library/ms998549.aspx
(http://msdn2.microsoft.com/en-us/library/ms998549.aspx)
Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:821268
(http://support.microsoft.com/kb/821268/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste