CategoryC#

Class Dosyalarında Cache Kullanımı

C

Sitemizin genelinde/tamamında cache yapısı kullanmak istediğimizde genellikle cache methodunu class dosyamızdan kullanmak isteriz. Ancak class dosyası üzerinde cache kullanmaya  izin verilmemektedir. Class dosyasında cache kullanabilmek için HttpRuntime‘ dan yararlanıyoruz.

[csharp]HttpRuntime.Cache["cache_ismi"] = "içerik";[/csharp]

veya

[csharp]HttpContext.Current.Cache["cache_ismi"] = "içerik";[/csharp]

şeklinde kullanabilirsiniz.

Fatal error encountered during command execution.

F

Fatal error encountered during command execution.

Yukarıdaki hatanın bir çok sebebi olmasına rağmen genellikle parametreli bir sorgu gönderirken bu parametrelerden bir yada bir kaçına değer vermeyi unuttuğumuzda yada parametre isimlerini yanlış yazdığımızda bu hata ile karşılaşıyoruz. Hatanın çözümü için sorgunun düzgün yazılmış ve gönderilen parametrelerin eksik olmadığının kontrolünü yapabilirsiniz.

500 – Internal Server Error (Url Routing)

5

Asp.Net 4.0 ile url routing kullanımında siteyi sunucumuza yüklediğimizde 500 – Internal Server Error hatasıyla karşılaşabiliyoruz. Hatayı giderilmek için sitemizi ISS te Integrated Mod da çalıştırmamız gerekiyor. Bunu IIS üzerinden ayarlayabileceğimiz gibi web.config te yapacağımız ufak bi düzenleme ile de ayarlayabiliyoruz.

Çözüm için web.config e girilecek komut;

[csharp]<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>[/csharp]

Unutmadan url routing kullanabilmek için projenizin ASP.NET 4.0 ile yazılması ve sunucuda IIS 7 (yada IIS 6′ nın tüm updatelerinin kurulu olması) gerektiğini de hatırlatmakta fayda var. ASP.NET 3.5 ile kullanabilmek için ise webforms değil de MVC yapısını kullanmanız gerekmektedir.

Newline in Constant

N

newline in constant

Bu hata satırığın bittiğini ancak satır içeriğinin bitmediğini bildirir. Birden fazla string i birleştirirken yada sql sorgularınızda yazım hatalarınızdan dolayı bu hata ile karşılaşabilirsiniz.

Çözüm için yazdığınız satırı kontrol ediniz, mutlaka bir yerde hata yapmışsınızdır. ” (çift tırnak) karakterini string yada sql sorgusu içerisinde kullanıyorsanız \ (ters bölü) işareti ile duyarsız hale getirebilirsiniz.

Geçersiz geri gönderme veya geri arama bagimsiz degiskeni

G

Geçersiz geri gönderme veya geri arama bagimsiz degiskeni.  Yapilandirmada <pages enableEventValidation=”true”/> veya sayfada <%@ Page EnableEventValidation=”true” %> kullanilarak olay dogrulamasi etkinlestirildi. Bu özellik güvenlik nedenleriyle, geri gönderme veya geri arama olaylari bagimsiz degiskenlerinin bunlari baslangiçta isleyen sunucu denetiminden kaynaklandigini dogrular. Veriler geçerliyse ve beklendigi gibiyse, geri gönderme veya geri arama verilerini dogrulanmak üzere kaydetmek için ClientScriptManager.RegisterForEventValidation yöntemini kullanin.

Genellikle Datalist, Gridview gibi komponentler kullanırken ortaya çıkan bir hatadır, nedeni viewstatelerdir. Viewstate’ i kapatarak sorun çözülebilsede viewstate’ i kapatmak beraberinde başka sorunlar getirebiliyor.

Çözüm için verileri çektiğimiz kodları Page.IsPostBack arasına almamız gerekiyor.

[csharp]if (Page.IsPostBack == false){

// Verileri sorguladığınız kodlar bu alana yazılacaktır.

}
[/csharp]

Son çare olarak viewstate i EnableViewState=”false” komutuyla kapatabilirsiniz.

An error occurred while parsing EntityName

A

Bugün karşılaştığım bu hata xml dosyalarımız içerisinde & karakterini kullandığımızda ortaya çıkıyor. Direk olarak bu karakteri kullanabilmemiz için bildiğim kadarıyla kesin bir çözümü yok, duruma göre farklı çözüm yolları deneyebilirsiniz.

Çözüm için gelen karakteri &amp; olarak replace edebiliriz.

[csharp]Replace("&", "& amp;")[/csharp]

Eğer bu sorununuzu çözmediyse ve illa & işaretini kullanmak istiyorsanız & yerine _and_ gibi bir yazı kayıt edip yine bunu çekerken replace etmek gibi kolay bir yönteme kaçabilirsiniz :)

Hatanın bir diğer nedenide Türkçe karakter kullanmak olabilir. Bunun içinde dosyamızın başına aşağıdaki kodu ekliyoruz;

[xml]< ?xml version=\"1.0\" encoding=\"windows-1254\"? >[/xml]

Eğer sorununuzu çözmez ise duruma göre utf8 gibi diğer karakter setlerini kullanarakta şansınızı deneyebilirsiniz :)

Thread was being aborted

T

Try-catch yapısı altında Response.Redirect(); methodunu kullandığımız zaman aşağıdaki hata ile karşılarız.

Thread was being aborted

veya

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack

Response.Redirect’ in kullanımı aşağıdaki gibidir;

[csharp]Response.Redirect("url.aspx",true/false);[/csharp]

yukarıdaki true,false alanını boş bıraktığımız zaman bu method otomatik olarak true halini almaktadır. True şeklinde kullanımı response işleminden sonra exception yaratmasını sağlamaktır. Yani try-catch içerisinde kullanırsanız yönlendirme işlemini yapmasına rağmen exception’ a da düşecektir. Exception’ a düşmesini istemiyorsanız Response.Redirect kodunuz ile birlikte false değerini göndermeniz gerekmektedir.

Ayrıntılı bilgi için Microsoft sayfası: http://support.microsoft.com/kb/312629/tr

Asp.Net Web Sayfasında MessageBox Kullanımı

A

Windows uygulamalarında kullandığımız MessageBox.Show() komutunu web uygulamalarımızda da kullanabiliyoruz. Bunun için windows form kütüphanesini çağırmak gerekiyor. Sadece bir messagebox için koskoca kütüphaneyi çağırmak kesinlikle mantıklı değil. Ancak hata atarken vs.. geçici olarak messagebox koymayı düşünebilirsiniz diye paylaşma gereği duydum.

Öncelikle windows forms kütüphanimizi çağırıyor, daha sonra da messagebox kodumuzu yazıyoruz.

[csharp]

using System.Windows.Forms;

MessageBox.Show("Merhaba Dünya!");

[/csharp]

Fill: SelectCommand.Connection property has not been initialized.

F

Server was unable to process request. —> Fill: SelectCommand.Connection property has not been initialized.

yukarıdaki hata genellikle veritabanınıza bağlantı açmadan bir sorgu çalıştırmaya kalktığında ortaya çıkmaktadır. Bağlantınızın durumunu (açık olup olmadığını) “connectionstate” komutu ile sorgulayabilirsiniz.

Get in touch

Quickly communicate covalent niche markets for maintainable sources. Collaboratively harness resource sucking experiences whereas cost effective meta-services.