Şu senaryoyu inceleyin. Bir Microsoft ASP.NET uygulama işlem içi Microsoft COM + Bileşenleri'ni başlatır. Bazı işlemler, bir COM + bileşeni ortaya gibi istek şu anda kesin zaman aşımına uğradı. Bu senaryoda, COM + çal??ma zaman?, Windows hata bildirimi alt sisteminde bir hata bildirebilir. Sonra Windows hata raporlaması, uygulamada ek gecikmelere neden ve temel sorun bileşik eylemler alabilir. Olay Görüntüleyicisi'nde Sistem günlüğünü görüntülediğinizde, aşağıdakine benzer bir olay görebilirsiniz:
COM + olay KIMLIĞI: 4768 Olay türü: hata Olay kaynağı: COM + Olay kategorisi: Bilinmeyen olay KİMLİĞİ: 4786 Açıklama: Sistem, bir özel bileşenini çağırdı ve bu bileşen başarısız bir özel durum oluşturdu. Bu, özel bileşenle ilgili bir sorunu gösterir. Bir hata oluştu, bu bileşenin geliştiricisini uyar ve bunları aşağıdaki bilgileri sağlar. Yöntem adı: IObjectControl::Deactivate() Özel durum: E0434F4D Adres: 0x77E649D3 Yığın arayın: Kernel32! RaiseException + 0x48 mscorsvr! CoEEShutDownCOM + 0xe448 mscorsvr! CoEEShutDownCOM + 0xe3cb mscorsvr! CoEEShutDownCOM + 0xe37f mscorsvr! CoEEShutDownCOM + 0xe322 mscorsvr! GetMetaDataPublicInterfaceFromInternal + 0x26ef mscorsvr! CoEEShutDownCOM + 0x15eae mscorsvr! ReleaseFusionInterfaces + 0x1d2fa Comsvcs! RegisterComEvents + 0x3f074 Comsvcs! RegisterComEvents + 0x40146 Ole32! ReadStringStream + 0x22057 Ole32! CreateDataAdviseHolder + 0x1534 Ole32! CoQueryAuthenticationServices + 0xf5f Ole32! CoQueryAuthenticationServices + 0x1b06 Ole32! CoQueryAuthenticationServices + 0x2236 Olay türü: hata Olay kaynağı: Uygulama hatası Olay kategorisi: (100) Olay KIMLIĞI: 1000 Açıklama: uygulama w3wp.exe, sürüm 6.0.3790.1830, kernel32.dll modülünde, <a1>Sürüm</a1> 5.2.3790.2756, hata adresi 0x00015e02 hatalı. Daha fazla bilgi için Yardım ve Destek Merkezi'ne bakın: http://go.microsoft.com/fwlink/events.asp. Veri: 0000: 41 70 70 6 c 63 61 69 74 Applicat 0008: 69 6f 6e 20 46 61 69 6 c iyon başarısızlık 0010: 75 72 65 20 20 77 33 77 ure w3w 0018: 70 2e 65 78 65 20 36 2e p.exe 6. 0020: 30 2e 33 37 39 30 2e 31 0.3790.1 0028: 38 33 30 20 69 6e 20 6b 830 da k 0030: 65 72 6e 65 6 c 33 32 2e ernel32. 0038: 64 6 c 6 c 20 35 2e 32 2e dll 5.2. 2e 32 37 35 3790.275 0048: 36 20 61 74 20 6f 0040: 37, 39 30 33 66 66 6'saatinde 0050: 73 65 74 20 30 30 30 31 kümesi 0001 0058: 35 65 30 32 5e02 kapalı.
Bir ASP.NET isteğinin zaman aşımı eşik aşıldığında, bu sorun oluşur. ASP.NET çalışma zamanı isteğini, isteği işleyen iş parçacığının ThreadAbortException özel durum üretiliyor tarafından durdurur. ASP.NET istek işlem içi COM + bileşeni çağırır ve ThreadAbortException özel durum bir anda bir bileşeninin IObjectControl yöntemlerden birini çalıştırıyorsanız, COM + çalışma zamanı özel durumu yakalamak ve Windows hata raporlaması için hata raporu. Sonra Windows hata bildirimi olay günlük girdilerini oluşturun ve hata sunucuları ile iletişim kurar. Bu davranış oluştuğunda, ASP.NET istek çalışan iş parçacığının engeller ve yanıt geciktirilebilir. Windows hata raporlama işleminin bir döküm dosyası oluşturabilir. Bu davranış oluştuğunda, işlem dondurulur ve tüm yanıtlar gecikti. Bu hataları ortaya çıktığında, işlem içi (kitaplık) COM + uygulamaları barındıran işlem sonlandırılır. Ayrıca, döngü sırasında sonraki zaman aşımlarının yineleyin ve ek gecikmelere neden.
Not "Daha fazla bilgi" bölümündeki örnek, bir Microsoft .NET Framework ServicedComponent sınıfını kullanır. Uygulama yönetilmeyen COM + bileşenleri kullanır ancak aynı sorun ortaya çıkabilir.
Bu sorunu gidermek için <a0></a0>, ASP.NET zaman aşımı kaçının. ASP.NET istek zaman aşımı eşiği aşan beklenmiyordu, araştırmak ve alttaki gecikmeler kaynağını çözmek. Aşağıdaki yöntemlerden temel gecikme kaynağını bulmak için etkin araçları olabilir:
Işlemin temel gecikme alınmış, döküm dosyalarını çözümleyebilirsiniz.
Uygulamayı altında bir profil oluşturucu yardımcı programını çalıştırın.
Oturum boyunca, uygulamayı kullanın.
Bazı senaryolarda, istekleri, varsayılan ASP.NET istek zaman aşımı daha uzun sürmesine için beklenmelidir. Bu senaryolarda, zaman aşımı değerini daha uygun bir değerle değiştirmeniz gerekir. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
Bu soruna geçici bir çözüm bulmak için <a0></a0>, alınmış işlem dışı (sunucu) uygulama işlem içi (kitaplık) uygulamasından bir COM + uygulamasını değiştirebilirsiniz. Bir sunucu uygulaması, COM + bileşenleri ayrı bir işlemde ASP.NET isteklerden çalıştırın. Bu nedenle, COM + çal??ma zaman? ThreadAbortException bir özel durum algılamaz ve Windows hata bildirimi alt sistem özel durumu bildirdi.
Basit bir ServicedComponent sınıfı oluşturmak ve sonra sınıfı COM + yüklemeniz 306296 Microsoft Bilgi Bankası makalesindeki adımları izleyin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
306296
(http://support.microsoft.com/kb/306296/
)
Visual C# .NET ile servis verilen bir .NET bileşeni oluşturma
Aşağıdaki kod örneği eklemek için ServicedComponent void Activate() korumalı ResultClass
protected override void Activate()
{
// Sleep for 100 seconds.
// (The default ASP.NET time-out is 90 seconds.)
System.Threading.Thread.Sleep(1000*100);
}
Microsoft Visual C# ile Web uygulaması oluşturun. Bunu yapmak için şu adımları izleyin:
Microsoft Visual Studio .NET'i başlatın.
Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
Yeni proje) iletişim kutusunda, Project Types altında Visual C# Projects ' ı tıklatın ve sonra şablonları altında ASP.NET Web uygulaması ' ı tıklatın.
Konum kutusunda http://localhost/TestWeb1 yazın.
Projeyi oluşturmak için Tamam ' ı tıklatın. Projenize WebForm1.aspx eklenecektir.
Solution Explorer'da (Çözüm Gezgini), TestWeb1 sağ tıklatın ve sonra Add Reference</a1>'ı tıklatın.
Başvuru Ekle iletişim kutusunda, Gözat ' ı tıklatın.
ServicedComponent içeren DLL Bileşeni Seç iletişim kutusunda seçin-türetilmiş sınıf 1. adımda oluşturulan.
Solution Explorer'da (Çözüm Gezgini), WebForm1.aspx dosyasını sağ tıklatın ve Kod Görüntüle</a1>'ı tıklatın.
Aşağıdaki kod örneği Page_Load olayı procedure.
// Create an instance of the ServicedComponent-derived class.
// Note: Change the namespace and the class name as appropriate.
MyNamespace.MyServicedComponent sc = new MyNamespace.MyServicedComponent();
// Call any method on this object to cause the Activate method to occur.
sc.DoTrans();
Http://localhost/TestWeb1/WebForm1.aspx sayfayı sınamak için bir yük sınaması yardımcı programını kullanın. Örneğin, aşağıdaki Microsoft Bilgi Bankası makalesinde listelenen adımları izleyin:
815161
(http://support.microsoft.com/kb/815161/
)
ASP.NET, Web Application Stress Tool ile) yanıt verme yeteneğini ölçer nasıl kullanılır
Ö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:917069
(http://support.microsoft.com/kb/917069/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.