CategoryMicrosoft .NET

Build, Rebuild, Compile ve Clean Arasındaki Farklar

B

Hepimiz projemizi çalıştırmadan önce derliyoruz, derleme işlemini gerçekleştirmeden çalıştırsak dahi Visual Studio bizim yerimize derleme işlemini yapıyor. Aşağıdaki yazıdan derleme türlerinin neler olduğunu öğrenebilirsiniz. Yazılanlar Visual Studio için geçerlidir, geliştirme araçlarına göre farklılıklar gösterebilir.

Compile: Sadece editör de o an açık olan sayfayı derler.

Build: En son yapılan build işleminden sonra üzerinde değişiklik yapılan tüm dosyaları derler.

Rebuild: Herhangi bir durumu dikkate almaksızın projenin tamamını yeniden derler. Tüm proje yeniden derleneceğinden Build işlemine göre daha uzun sürecektir ancak build ile derleme sırasında oluşan hataları rebuild ile çözebilirsiniz.

Clean: Derleme sonrasında oluşan geçici ve kalıcı tüm dosyalar temizlenir. Bir sonraki derleme işleminde temiz bir başlangıç yapılır. Genellikle proje kodları bir başkasına gönderilmek istenildiğinde hem proje boyutunu ufaltmak hemde gereksiz dosyalardan kurtulmak adına tercih edilir.

Umarım faydalı olmuştur :)

[No relevant source lines]

[

[No relevant source lines]

Yukarıdaki saçma hata hiç birşeyi açıklamasa da yetki hatasından meydana geliyor :) Web.config dosyanıza Network Service yetkisini full olarak verirseniz sorun ortadan kalkıyor. Eğer yetki verdiyseniz ve sorun halen devam ediyorsa ASP.NET’ in temp klasörlerine de aynı yetkiyi vermeyi deneyebilirsiniz.

Visual Studio Hata Mesajlarının Dilini Değiştirmek

V

Web sitemizin yada programımızın farklı bir dilde hata vermesini isteyebiliriz. Özellikle bir hata ile karşılaştığımızda Türkçe kaynak sıkıntısı nedeniyle hatayı İngilizce olarak araştırıp çözüp bulmak çok daha pratik oluyor. Aşağıdaki kodu projenizin load aşamasında girerek hata mesajlarını istediğiniz dile çevirebilirsiniz.

[csharp]System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("En");[/csharp]

* En yerine istediğiniz dilin kısaltmasını yazabilirsiniz.

String was not recognized as a valid DateTime

S

String was not recognized as a valid DateTime

Yukarıdaki hata ile genellikle bir string veriyi datetime formatına çevirirken karşılaşıyoruz. Öncelikle datetime formatına çevirmek istediğimiz string verinin çevrilebilir bir şekilde geldiğinden emin olmalıyız.

Hatanın bir diğer nedeni ise sunucunun tarih formatının yanlış olması olabiliyor. Sunucunuzun bölge ayarlarından tarihin 15.06.2011 15:34 gibi olduğundan emin olun. Eğer bu şekildeyse ve sorun halen devam ediyorse web.config dosyamızda bir takım değişiklikler yaparak sorunu gidebiliriz.

Web.config te yapacağımız bu değişiklik ile yazılımımız/web sitemiz sunucunun saat ayarını değil web.config dosyasına girmiş olduğumuz saat ayarını kullanacak. Aşağıdaki kodları <system.web> içerisine yazmanız gerekmektedir.

[csharp]<globalization
culture="tr-TR"
uiCulture="tr-TR"
/>[/csharp]

A potentially dangerous Request.Form value was detected from the client

A

A potentially dangerous Request.Form value was detected from the client
Zararlı olabilecek bir değer Request.Form algılandı

yukarıdaki hatalardan birini alıyorsanız büyük ihtimalle HTML formatında bir girdiyi sunucunuza kaydetmeye çalışıyorsunuzdur. Yukarıda yazdığım hata ASP.NET’ in bir güvenlik özelliğidir. Sisteminize Sql Injection yapılmasına yada veritabanınıza zararlı kod yerleştirilmesine engel olmaktadır.

Bazı durumlarda (yönetim panelinden html girdisi gibi…) bu güvenliği devre dışı bırakmamız gerekebilir. Aşağıda yazmış olduğum kodları kullanarak bu güvenliği kapatabilirsiniz.

Tüm sitede güvenliği kapatmak için:

[csharp]<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>[/csharp]

Belirli bir sayfada güvenliği kapatmak için:
<%@ Page Language=”C#” şeklinde başlayan kodun içerisine

[csharp]ValidateRequest="false"[/csharp]

ekleyiniz.

Asp.Net IP Adresi Almak

A

Aşağıdaki komutları kullanarak sitenize giren kullanıcıların ip adreslerini öğrenebilirsiniz.

[csharp]Request.UserHostAddress;[/csharp]

veya

[csharp]Request.ServerVariables["REMOTE_ADDR"];[/csharp]

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.

Get in touch

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