2009-04-25 60 views
5

Yaptığım küçük bir ASP.NET/C# web uygulamasının hata düzeltmesinde bir OutOfMemoryException ile karşılaştım.Hata ayıklama outofmemoryexception

Bir derleme zamanı hatası olduğu için nereye bakılacağı konusunda bir ipucu yok. Bu istisnayı nasıl teşhis edebilirim? Bellek profillemenin devreye girdiği yer tam olarak mı? Herhangi bir ipucu?

Teşekkür

+2

Tam olarak ne demek, derleme zamanı hatası mı? Derleyici bir OutOfMemoryException mı atıyor? – asgerhallas

+1

Bellek dışında derlenmiş bir derleme zamanı GERÇEKTEN garip kaynak kodunuzun olduğunu gösterir. C++ 'da bunu düşünebilmem için tek yol, özyinelemeli dosyaları içerir (yani a.h, a.h içerirken b.h içerir) - C# bazı benzer kavramlara sahiptir? Temelde parse ağacının patlamasına neden olan bir şey yapman gerekiyor. –

+0

Evet, derleyicinin kendisi hatayı atıyor. YSS yok, ancak hata ayıklamaya çalışırken çıkış penceresinde bir hata yok. Ben suçlu sanırım ben ayrıştırmak (rss beslemeleri vardır) ve sonra özel bir rss besleme okuyucuda görüntülemek bir 3mb xml dosyası var. Dev web sunucusunu kapattım ve sıraladım. – dotnetdev

cevap

5

basit ve bu sesler saçma olarak yararlı olabilir (DebuggingFlag == true) Response.Write ("DebugMsg") ise ... Zaman içinde OutOfMemoryException oluşur ve neyin çok fazla bellek aldığını analiz eder.

Tess Ferrandez, blogunda excellent How-To series var.

1

Burada önerebilirsiniz iki şey var:

1) Belki makine belleği yetersiz çalışıyor. http://digioz.blogspot.com/2008/11/visual-studio-systemoutofmemory.html

ile ilgili bazı fikirlere göz atın. 2) Visual Studio dışındaki projeyi VS Komut satırı yardımcı programını kullanarak derlemeyi deneyin ve msbuild "SolutionfileName.sln" komutunu çalıştırın. O zaman hala çöküyor mu? yardımcı olur :)

1

Umut seni derleme zamanı hatası çalışma zamanı hatası anlamına değil, umarım.

Genellikle, statik bir alana veya sistem çapında bir ASP.NET kapsayıcısına kaydedilen bir liste büyüyorsanız bu durum gerçekleşir.

Sen gibi, bir profilini uygulamayı çalıştırabilir

: Üzgünüm yukarıda

Red gate ants profiler

1

, ama bana oldu 3 kat daha fazla - Redgate VS veya tamamı Windows'u ya kırdı ... Bunu approach deneyin. Sorununuzun kök nedenini incelemek zayıftır, log4net'u kontrol edin. Ayrıca basit şu adresten programın bir bellek dökümü almalı