Makale numarası: 892277 - Son Gözden Geçirme: 18 Mayıs 2007 Cuma - Gözden geçirme: 2.4 ASP.NET WinDbg ve SOS uzantısı'nı kullanarak sorun giderme
ASP .NET Destek Sesi sütunuASP.NET WinDbg ve SOS uzantısı'nı kullanarak sorun gidermeBu sütun için kendi gereksinimlerinize göre özelleştirmenin sizi ilgilendiren konular hakkındaki fikirlerinizi göndermeye davet etmek isteriz ve gelecekte Knowledge Base makaleleri ve Destek Sesi sütunu görmek istediğiniz sorunlar giderilmiştir. Kendi fikirleri ve Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) formunu kullanarak geri besleme gönderebilirsiniz. Formun alt kısmındaki bu sütunun. bağlantı da oradaBu SayfadaYeniden Merhaba ve Destek Sesi sütunu Ocak 2005 sürümü için Hoş Geldiniz. Yine, Microsoft ASP.NET, için kendi katkıyı destekleyen burada destek mühendisi Jim Cheshire, teşekkür etmek istiyorum. Jim Destek Sesi sütunu için mükemmel fikir vardır ve bunları paylaşmak devam istedi. Jim'ın katkıyı geçen ay için ve bir sonraki aya veya bunu ve her zaman olarak bize gelecekteki sütunları ilgili önerilerinizi gönderin. Teşekkür Jim! Jim konusunda Microsoft ile altı yılı için FrontPage, VB ve ASP.NET takımları. Bu sırada, Office Developer Center için MSDN'de Marc yazmıştır ve kendisine bir kayıt defterinin, FrontPage, özel Edition Using Microsoft Office FrontPage 2003 yazar olur. Jim Marc ücretsiz eklentileri Web geliştiricilerin Microsoft ürünleri en iyi hale getirmek FrontPage'in sağlar; burada, bir Web sitesi de vardır. Işte, bu Web sitesi adresi: http://www.jimcosoftware.com
(http://www.jimcosoftware.com)
Bu nedenle Lütfen, bir sandalye çeker, sizin ayakkabısı kick aracılığıyla ASP.NET sorun giderme hakkında tüm bizim sütun okuyun ve unutmayın, biz yayımlamak fikirlerinizi bize her bir sütunda bulunan "BT IÇIN ASK" bağlantısını kullanarak gönderebilirsiniz. Jeremy ASP.NET WinDbg ve SOS uzantısı'nı kullanarak sorun gidermeIyi BIR uygulama geliştiricisi için herhangi bir olası planlamanız. Doğal olarak, bu planlama parçası bazı sağlam özel durum yordamlar işleme geliştirmektedir. Pek çok ASP.NET geliştiricileri, kullanıcı, iyi biçimlendirilmiş bir Web sayfası sunmak ve sonra özel durum bilgilerini daha sonra çözümlenmek dosyasında oturum tarafından özel durum işleyecektir. Senaryo:Geliştirilmiş olan ve bir günlük dosyasına özel durumlarını günlüğe yeni bir ASP.NET uygulamasını sınamıştır. Üretim Web sunucunuz ASPX sayfalarının ve derlemeleri dağıtın. Kişilerin uygulamanız kullandığınızda bir hata sayfası görme, ancak hiçbir özel durum günlüğü, günlük dosyalarına yazılır. Ayrıca Olay Görüntüleyicisi Uygulama günlüğüne Aspnet_wp.exe beklenmedik biçimde durdu belirten pek çok ASP.NET olay olduğunu fark.Geliştirici desteği başlıklarında sorun bu sık kullanılan türüdür ve çoğu, müşterilerimizin yoksa gerçekten bilip, sorun giderme yaklaşmanıza nasıl. Kötüsü dreaded "Sunucu uygulaması kullanılamıyor" hata iletisidir. Bu ay ı, bu tür için hata ayıklama araçları Windows ile ilgili sorunları giderme gösterir. Vazgeçme Belgesi: Microsoft Geliştirici destek aradığınızda, sizi genelde bir kilitlenme bilgi döküm dosyası veya bir asılı_kalma kilitlenme döküm dosyası bize göndermeniz için isteyebilir. Bu makalede döküm dosyasının çözümlemesi oldukça kolay ve daha hızlı olacaktır. Çoğu durumda, sorunun nedeni açık değildir ve bu çözümleme için kök nedeni almak için saatler sürebilir. Kolay ve düz-bunların hepsi bu kadar kolay olduğunu düşünme içine fool forwardness Bu döküm dosyasını analiz, izin vermeyin. Çoğu, aslında değil! HazırlıklıBiz başlamadan önce Windows için hata ayıklama araçları yüklemeniz gerekir. Yüklü bir kopyası varsa bile emin biz uzantısı olan hata ayıklama yönetilen için kullanacağınız için en son sürümüne sahip yalnızca hata ayıklama araçları Windows için en son sürümü ile birlikte verilen.Hata ayıklama araçları Windows için aşağıdaki Microsoft Web sitesinden yükleyebilirsiniz: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
(http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx)
Hata ayıklama araçları Windows için yeniden yüklediğinizde, C:\Debuggers klasörüne özel bir yükleme yapmak isteyebilirsiniz. Biz Araçlar komut satırından çalıştırıyor olması ve kısa bir yol ise, bunun nedenle sizin için kolaylaştırır. Yükleme tamamlandıktan sonra alt işlemin kilitlenmesine örnek ASP.NET sayfayı yüklemek isteyebilirsiniz. http://download.microsoft.com/download/c/a/1/ca1c6329-3b3f-4d9e-a76d-54c78d3ddfbc/crash.exe
(http://download.microsoft.com/download/c/a/1/ca1c6329-3b3f-4d9e-a76d-54c78d3ddfbc/crash.exe)
Bu sayfayı kullanarak döküm dosyası oluşturmak, sırayla, yüklü, ASP.NET 1.1 Service Pack 1 (SP1) çalıştırıyor olmanız gerektiğini unutmayın. SP1, bu sayfayı, bir kilitlenme oluşturmadan çalıştırır.Simge yolu için WinDbg ayarlamak istersiniz. Simgeleri yönetilen derlemeler ad çözümlemesi işlevi için gerekli değildir, ancak yerel işlev çözümlemesi için simgeler gerekir. Simge yolu WinDbg ayarlamak için <a0></a0>:
Kilitlenme bilgi dökümü dosyası oluşturmaBuradaki, örnek sayfada düğmesini tıklatarak, ASP.NET alt işleminin çökmesine neden olur. Çoğu durumda, bir kilitlenme oluşturmak için kesin adımlar bilemezsiniz. Aslında, üretim uygulamanızı, bazı rasgele zaman çökebilir. En kısa zamanda anlatıldığı gibi predictably veya rasgele bir kilitlenme oluşuyor olup olmadığını fark etmez. Bir döküm dosyası oluşturup Adplus, işlemin tamamı otomatikleştiren VBScript dosyası kullanarak oldukça kolaydır.Döküm dosyası oluşturmak için <a0></a0>, ilk örnek sayfasına gözatmak gerekir. (Düğmesini tıklatmayın!) Sayfayı başarıyla sunulan sonra Aspnet_wp.exe işlemi (veya Windows Server 2003'te W3wp.exe işlemi) başlatıldı olduğunu biliyor. Şimdi bunu çöküyor, döküm dosyasını yakalamak için alt işlem için hata ayıklayıcısını eklemek hazırsınız. Bir döküm dosyası oluşturmak için <a0></a0>:
286350
(http://support.microsoft.com/kb/286350/
)
Giderilir ADPlus nasıl kullanılır "askıda kalır" ve "kilitleniyor" Bu komutu çalıştırdıktan sonra birkaç iletişim kutuları sunulur. Her iletişim kutusunda Tamam ' ı tıklatın. Hata ayıklayıcı, CDB, hata ayıklayıcısını uygulama adı için görev çubuğunda bir düğme artık görmelisiniz. Ancak, bunu pencerenizde farklı olabilir.Note Adplus kilitlenme modunda çalıştırdığınızda, web sunucusundaki konsolunda olmanız gerekir. Adplus uzaktan kilitlenme modda çalıştıramazsınız. Şimdi bir kilitlenme oluşturmaya hazırsınız! Alt işlemin kilitlenmesine sayfasında düğmesini tıklatın. Visual Studio. NET'te etkin JIT hata ayıklamayı varsa, özel durum oluştu ancak hata ayıklayıcı ekli tanıtıcı açamadı bilmenize olanak sağlayan bir iletişim kutusu görüntülenir. Değilse, JIT hata ayıklamayı etkin, döküm dosyasını, görüntülenen tüm iletişim kutuları oluşturulur. Her iki durumda, görev çubuğundan kayboluyor CDB düğme görmek, sonra döküm dosyasını tamamladı ve sonraki adıma geçmek hazırsınız. Döküm dosyası dışında denetleniyor
Bu resmi kapat ![]() Hataya neden olan yığın, komut isteminde kb komut yazarak görebilirsiniz. Döküm dosyası çıktısı aşağıdadır: 0:000> kb ChildEBP RetAddr Args to Child 00771018 791b6173 00000643 00000000 00b59bc0 mscorwks!_EH_prolog+0x2 00771928 791b60c0 00771a04 00000000 00000000 mscorwks!EEClass::DoRunClassInit+0xbe 0077193c 791d75a7 00771a04 00771a50 00b59bc0 mscorwks!MethodTable::CheckRunClassInit+0x1d 00771a14 791d7746 00000000 0086fb88 00771a50 mscorwks!MethodDesc::DoPrestub+0x28e 00771a2c 00a92f76 00771a50 0180f154 00ee5cd4 mscorwks!PreStubWorker+0x42 WARNING: Frame IP not in any known module. Following frames may be wrong. 00773a38 0337f2bc 00f8463c 00eb593c 00ee5cc8 0xa92f76 00773a64 031cd7e4 00eb593c 0180ea7c 00f84560 0x337f2bc 00773aac 033a3299 00000000 00eb593c 0180ea7c 0x31cd7e4 00773b50 033a3031 00000001 00000000 0180e238 0x33a3299 00773bec 0332ee47 00edb274 0180df00 00f8463c 0x33a3031 00773c28 0332e71b 0180df00 033a35c5 0180d870 0x332ee47 00773cc4 033a3031 00000001 00000000 0180d2b4 0x332e71b 00773d60 0332ee47 00edb274 0180cf7c 00f8463c 0x33a3031 00773d9c 0332e71b 0180cf7c 033a35c5 0180c8ec 0x332ee47 00773e38 033a3031 00000001 00000000 0180c330 0x332e71b 00773ed4 0332ee47 00edb274 0180bff8 00f8463c 0x33a3031 00773f10 0332e71b 0180bff8 033a35c5 0180b968 0x332ee47 00773fac 033a3031 00000001 00000000 0180b3ac 0x332e71b 00774048 0332ee47 00edb274 0180b074 00f8463c 0x33a3031 00774084 0332e71b 0180b074 033a35c5 0180a9e4 0x332ee47 Note Bir işlemcili sistem (veya hyper modelli iş parçacıklı bir sistem) kullanıyorsanız, mscorsvr mscorwks yerine, işlevini çağırdığında görürsünüz. WinDbg mscorwks simgeleri karşıdan olduğundan işlev adları mscorwks.dll görebilirsiniz. Ancak, çağrı mscorwks içine, hiçbir modül adı ve hiçbir işlev adları görürsünüz. Yönetilen kod (ortak dil çalışma zamanı altında çalışan kodu) hangi WinDbg varsayılan olarak benzer ve kuşkusuz yararlı çıktı değilse. Bu yönetilen kod nerede görmek için SOS uzantısı için WinDbg kullanmanız gerekebilir. SOS uzantısıSOS için WinDbg, yönetilen kod hatalarını ayıklamanızı sağlayan bir uzantıdır. WinDbg hata ayıklama yönetilen uygulamaların tümü odaklanmış, komutların çoğu SOS ekler ve pek çok ASP.NET özeldir. Sos.dll adlı bir DLL dosyasının uzantısıdır ve hata ayıklama araçları Windows için yüklü olduğu klasörü Clr10 klasöründe bulunan.SOS uzantısı'nı yüklemek için <a0></a0>, WinDbg, komut isteminde aşağıdaki komutu yazın: .Load clr10\sos Dönemin başında komutunun atlama yok! Tüm gider, iyi, geri komut istemine alınması. Bir hata ortaya çıkarsa, hata ayıklama araçları yüklü Windows için en son sürümünü emin olun. Kilitlenme bilgi döküm dosyası ayıklama, ancak diğer komutları SOS zaman keşfetmeye çekinmeyin SOS gelen komutların birkaç ele alacağız. Kullanabileceğiniz ! yardımcı komutu, komutları ve her kısa bir açıklama listesi alınamadı. Kök nedeni diggingSOS yükledi, Şimdi diyelim bazı bir kilitlenme bilgi döküm dosyası sorun gidermede yararlı komutlar bakma var.Geçerli iş parçacığı, 0 numaralı iş parçacığı için yönetilen yığın bakalım. Biz bu kullanarak bunu ! clrstack komutu. Tür ! clrstack komut isteminde. Yığın Dökümü alma WinDbg başlatır. Normal bir yığın dışında tümüyle birkaç saniye içinde dökümü. Bu durumda, çıktı sonsuza kadar gider görünmektedir. Devam edin ve sonra CTRL-BREAK tuşlarına basın (veya WinDbg Hata Ayıkla menüsünden Böl ' ı tıklatın) ve onu bakalım. Here's a portion of the stack: Nerede daha iyi bir fikir edinmek için burada, ayrıntılı çıkış yığından çalıştırarak alabilirsiniz ! clrstack -s komutu. Bu size, tam yığın sağlar. Bu çıktı bazıları aşağıda verilmektedir. Bu komutun tam çıktısı, örnek sayfası kullanılarak bir döküm dosyası oluşturacak ve sonra da komutu çalıştırmak. Oldukça ayrıntılı çıktı olduğundan TıKLATTıĞıMDA, burada düzenledi?iniz. Bu nedenle şimdi ne bu istekte geçildi görmek için adresindeki bir görünüme sahip bu yığını HttpRequest nesnesinde görebilirsiniz. Biz dökümü nesne komutu kullanarak bunu ! yapmak. Bu komut, bir parametre alır: dökümünü almak için nesneyi adresidir. Önceki çıktıda çıktı ikinci onaltılı sayıyı adrestir. HttpRequest nesnenin çıktısını olur. Kısaltma i?inize, bu çıktı düzenlenmekte. Çıktısı bakmak ! clrstack. Dikkatle bakarsanız, düğmeyi tıklatarak olayı her sayfanın yükler tetikleme olduğunu görürsünüz. Bu, bir PostBack durumda her olduğunuz Sayfa yüklendiğinde zaman bildirir. Ayrıca, Server.Transfer tıklatın bu olay çağrılır yığından söyleyebilirsiniz. Bu nedenle, ASP.NET, bu sayfa yüklendiğinde kilitlenen durdurmak için bir geri gönderme'yi her sayfanın nedeniyle Server.Transfer yüklenen olan durdurmak gerekir. Note SP1'in yüklü ASP.NET Framework 1. 1'ile bir Server.Transfer yoksa ve form verilerini korumak, her zaman bu soruna neden olan. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 839521
(http://support.microsoft.com/kb/839521/
)
Düzeltme: Server.Transfer yöntemi yığın taşması olur ve ASP.NET çalışan işleminin yanıt vermemesine neden oluyor Server.Transfer</a0> yöntemini iki parametresi vardır; ilk yürütme transfer URL'YI ve ikinci form verilerini korunabilmesi olup olmadığını belirten bir Boole değeri. Size form verilerini korumak ne olur? ASP.NET, bir örnek için dikkate alacaktır bir geri gönderme. Bu nedenle, ikinci parametre false Server.Transfer çağrısı ayarlayarak bu kilitlenme durdurabilir miyim. KaydırmaBu makalede, ASP.NET uygulamalarında hata ayıklamak için WinDbg ve SOS nasıl kullanabileceğinize kısa bir örneklerde gösterilir. Bu makalenin amacı, bazı kavramları ve terminolojiyi kullanıcı modu hata ayıklama ilgili tanıtmak için yapıldı. Bu hata ayıklama kaynak kodu ' farklı bir yetenek ve iyi alma, önemli ölçüde zaman bir yatırım gerektirir. Bu deneyimi öğrenilen bir yetenek olur.Daha fazla deneyim için ı ASP.NET uygulamanızı bir geliştirme veya hazırlama ortamında yukarı yüklenemedi ve farklı zamanlarda bazı asılı_kalma kilitlenme döküm dosyalarını yakalama önerilir. Aşağıdaki komutu kullanarak Adplus asılı_kalma kilitlenme modunda çalıştırarak bunu: cscript adplus.vbs - asılı_kalma kilitlenme - pn aspnet_wp.exe -o c:\aspnet_dump Bu komut, aspnet_wp.exe işlemi hemen dökümü ve C:\Aspnet_dump klasöründe bir döküm dosyası oluşturacak. Bu gibi asılı_kalma kilitlenme döküm dosyasını, uzak bir bağlantıdan çalıştırabilirsiniz. Microsoft desenler ve uygulamalar grubu (PAG) de bazı mükemmel ve ayrıntılı makaleler WinDbg kullanarak .NET uygulamaları hata ayıklamayı yazmıştır olur. Bu makaleleri görüntülemek üzere aşağıdaki Microsoft Web sitesini ziyaret edin: http://msdn2.microsoft.com/en-us/library/ms954594.aspx
(http://msdn2.microsoft.com/en-us/library/ms954594.aspx)
Aslında, bu makalede yazarken benim amaçları birini PAG sağlayan mükemmel makaleleri yararlanmak için gereken temel ile sağlamak için oluştu. Ben kesinlikle, bunları yararlanmak için önerilir.Burada geri zaman BANA, kilitlenme bilgi döküm dosyaları çözümlemek için WinDbg ve SOS uzantısını nasıl öğretin sonraki aya görüyorum. Tekrar görüşünceye dek, Jim Cheshire Destek mühendisi Microsoft Geliştirici destek Her zaman olarak, gelecekte sütunları adreslenmiş istediğiniz konuları veya bilgi bankasının Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) formunu kullanarak fikir gönderme bildirmekten çekinmeyin.
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:892277
(http://support.microsoft.com/kb/892277/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
