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

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
ASP .NET Destek Sesi sütunu

ASP.NET WinDbg ve SOS uzantısı'nı kullanarak sorun giderme

Bu 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 orada

Bu Sayfada

Hepsini aç | Hepsini kapa
Yeniden 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 giderme


Iyi 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>:
  1. WinDbg açın. Başlat ' ı tıklatın, Programlar ' ın üzerine gelin ve sonra Windows için hata ayıklama araçları'nı tıklatın.
  2. Dosya menüsünde simge dosyası yolu.
  3. Aşağıdaki simge yolunu, Simge yolu iletişim kutusunda, şunu yazın:
    SRV*c:\Symbols*http://MSDL.Microsoft.com/download/symbols
  4. WinDbg kapatın ve sonra Evet temel çalışma alanı bilgilerini kaydetmek için komut istemine yazın.
Şimdi, kilitlenme bilgileri döküm dosyası oluşturmak hazırsınız.

Kilitlenme bilgi dökümü dosyası oluşturma

Buradaki, ö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>:
  1. Web sunucusu üzerinde yeni bir komut istemini açın ve sonra da hata ayıklama araçları Windows için yüklü olduğu dizine değiştirin.
  2. Aşağıdaki komutu çalıştırın:
    cscript adplus.vbs - kilitlenme - pn aspnet_wp.exe -o c:\crashdump
    Microsoft Windows Server 2003 çalıştırıyorsanız, aşağıdaki komutu çalıştırın:
    cscript adplus.vbs - kilitlenme - pn w3wp.exe -o c:\crashdump
BANA ayrıntılarını Adplus.vbs üzerinde buraya gelir olmaz, ancak istediğiniz daha fazla bilgi için aşağıdaki Microsoft Bilgi Bankası makalesi gözden geçirebilirsiniz:
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

  1. WinDbg başlatın.
  2. Dosya menüsünde Aç kilitlenme döküm dökümü dosyası açılamıyor. (Açık tıklatmayın araç çubuğundaki düğmeyi.)
  3. C:\Crashdump klasöre göz atın. Bu klasörde başka bir klasöre Crash_Mode_Date ile başlayan uzun bir adı olan bir randevu oldu?unu görecektir. Adplus dökümü dosyalarının bu klasöre içine kaydedilir. (Birden fazla döküm dosyası klasöründe olmalıdır.) Döküm dosyasını, WinDbg açmak istediğiniz ikinci şans özel durum dökümü dosyası var. Açık dosyayı ikinci şans özel durum dökümü dosyası dump dosya adına göre olmalıdır.
Döküm dosyasını açtığınız sonra WinDbg simgeleri karşıdan başlayacaktır. ınternet bağlantınızın hızına bağlı olarak, bu işlem birkaç dakika sürebilir. Tam olduğunda aşağıdaki şekilde gösterildiği gibi WinDbg, görüntülenen komut istemini görürsünüz.
Bu resmi kapatBu resmi aç
 WinDBg window
Şekil 1: WinDbg - "0: 000 >" komut istemini, geçerli iş parçacığının gösterir, 0'ı iş parçacığı.

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 digging

SOS 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:
Void System.Web.HttpServerUtility.ExecuteInternal(String,Class System.IO.TextWriter,Boolean)
Void System.Web.HttpServerUtility.Transfer(String,Boolean)
Void ASP.crash_aspx.btnCrash_Click(Object,Class System.EventArgs)
Void System.Web.UI.WebControls.Button.OnClick(Class System.EventArgs)
Void System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String)
Void System.Web.UI.Page.RaisePostBackEvent(Class System.Web.UI.IPostBackEventHandler,String)
Void System.Web.UI.Page.RaisePostBackEvent(Class System.Collections.Specialized.NameValueCollection)
Void System.Web.UI.Page.ProcessRequestMain()
Void System.Web.UI.Page.ProcessRequest()
Void System.Web.UI.Page.ProcessRequest(Class System.Web.HttpContext)
Void System.Web.HttpServerUtility.ExecuteInternal(String,Class System.IO.TextWriter,Boolean)
Void System.Web.HttpServerUtility.Transfer(String,Boolean)
Void ASP.crash_aspx.btnCrash_Click(Object,Class System.EventArgs)
Void System.Web.UI.WebControls.Button.OnClick(Class System.EventArgs)
Void System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String)
Void System.Web.UI.Page.RaisePostBackEvent(Class System.Web.UI.IPostBackEventHandler,String)
Void System.Web.UI.Page.RaisePostBackEvent(Class System.Collections.Specialized.NameValueCollection)
Void System.Web.UI.Page.ProcessRequestMain()
Void System.Web.UI.Page.ProcessRequest()
Void System.Web.UI.Page.ProcessRequest(Class System.Web.HttpContext
If you look closely, you'll see a pattern here. Size, bir geri gönderme yükseltme isteği işleme ve başlatın. OnClick olay için bir düğme sonra harekete geçirilir. Bir Server.Transfer'de oluşur. Işlemin tamamı baştan yeniden başlatmak için Server.Transfer sonra görünmektedir. Bu durumda, bu döngü yürütür, her zaman yığının nesneleri itilir. Sonuç olarak, yığın alanı yetersiz sistem çalışır ve bir StackOverflowException oluşur.

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.
0:000> !clrstack -s
Thread 0
System.Web.HttpServerUtility.ExecuteInternal(String,Class System.IO.TextWriter,Boolean)
    ESP/REG  Object   Name
    00773ac4 0180e7f4 System.EventArgs
    00773ac8 00f86c14 System.Web.HttpServerUtility
    00773acc 0180e238 System.Web.UI.WebControls.Button
    00773ad0 0180eac0 System.Object[]
    00773ad4 0180ea7c System.String    /crash.aspx
    00773ad8 00eb593c System.String    c:\inetpub\wwwroot\crash.aspx
    00773ae4 00f84754 System.Web.HttpResponse
    00773ae8 00f846bc System.Web.HttpRequest
    00773b00 00f86bec System.String    crash.aspx
    00773b04 00f86c14 System.Web.HttpServerUtility
    00773b2c 00eef57c System.String    btnCrash
    00773b34 00eef57c System.String    btnCrash
 00773b38 0180e2e4 System.Collections.Specialized.ListDictionary/DictionaryNode
    00773b44 00f797d8 System.String    CausesValidation
    00773b4c 0180e2e4 System.Collections.Specialized.ListDictionary/DictionaryNode
00773b60  033a3031 [DEFAULT] [hasThis] Void System.Web.HttpServerUtility.Transfer(String,Boolean)
    ESP/REG  Object   Name
    00773b60 0180e238 System.Web.UI.WebControls.Button
00773b6c  03360398 [DEFAULT] [hasThis] Void ASP.crash_aspx.btnCrash_Click(Object,Class System.EventArgs)
    ESP/REG  Object   Name
    00773b70 0180e7f4 System.EventArgs
00773b74  033a2fc5 [DEFAULT] [hasThis] Void System.Web.UI.WebControls.Button.OnClick(Class System.EventArgs)
    ESP/REG  Object   Name
    00773b74 0180df00 ASP.crash_aspx
    00773b78 0180e238 System.Web.UI.WebControls.Button
    00773b7c 00f8601c System.Web.HttpValueCollection
    00773b80 0180e314 System.ComponentModel.EventHandlerList
00773b88  033a2da2 [DEFAULT] [hasThis] Void System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String)
Buradan anlarsınız Server.Transfer çağrısı parametre olarak crash.aspx geçirmeden çıktı. Nasıl, anlarsınız? Bir sayfanın çağrısından sonra yürütür crash.aspx olduğunu göstergesidir. Ancak, aynı zamanda HttpRequest nesnede bakarak anlayabilirsiniz.

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.
0:000> !do 00f846bc 
Name: System.Web.HttpRequest
MethodTable 0x03089170
EEClass 0x02e9a1cc
Size 152(0x98) bytes
mdToken: 02000072  (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 030888b0
      MT    Field   Offset                 Type       Attr    Value Name
03089170  4000626       14                CLASS   instance 00f8457c _path
03089170  4000627       8c       System.Boolean   instance 0 _computePathInfo
03089170  4000628       18                CLASS   instance 00f8457c _filePath
03089170  400062e       2c                CLASS   instance 00f845a4 _pathTranslated
03089170  400062f       30                CLASS   instance 00e6703c _baseVirtualDir
03089170  4000630       34                CLASS   instance 00edce64 _contentType
03089170  4000631       88         System.Int32   instance 85 _contentLength
03089170  400063c       60                CLASS   instance 00f8601c _form
_FilePath nesne bu çıktıyı görebilirsiniz. Bu kullanarak dökümü, ! yapmak komutunu içeren bir dize olduğunu göreceksiniz "/ crash.aspx". Başka bir onaylayan tarafından özyinelemeli olarak yükleniyor crash.aspx özyineleme nedeniyle oluşur. Neden, ancak olmuyor? Şimdi daha derin edinebilirsiniz.

Çı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ırma

Bu 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.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Anahtar Kelimeler: 
kbmt kbhowto kbasp KB892277 KbMttr
Otomatik TercümeOtomatik 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/ )