Karşılaşılan Hatalar

The specified -35628-   port is in used.  hatası : Bu hata IIS Express’in başka projeler için çalıştırıldığını gösterir. Bunun için çalıştırılan projeyi durdurmak gerekir. Hangi projelerin IIS Express üzerinde çalıştığını görmek için FILE -> Open -> Web Site dediğinizde karşınıza çıkan pencerede Local IIS kısmını kontrol edebilirsiniz. Burada ki çalışmaları durdurduğunuzda hatayı geçmiş olacaksınız.

enter image description here

 

VS  invalid token ‘using’ in class struct or interface member declaration   error :

Bu hatanın sebebi tırnak içerisindeki ifadenin bir metod içerisinde yer alınmamasıdır. İfade metod içerisinde doğru syntax ile yazıldığında hata geçilecektir.

 

CS0433: The type ‘ASP.global_asax’ exists in both ‘c:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\fa3cb89b\2b019286\assembly\dl3\1697fe05\5259d9ff_b5e6d101\App_global.asax.DLL’ and ‘c:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\fa3cb89b\2b019286\App_global.asax.gq6hfbr1.dll’   

Siteyi publish edip filezilla ile yükledikten sonra browserda karşınıza bu hata gelmesi halinde bin klasörünün altında App_global.asax.compiled dosyasını silerek hatayı geçebilirsiniz. En azından ben bu şekilde geçtim 🙂

An exception of type ‘System.Threading.ThreadAbortException’ occurred in mscorlib.dll and wasn’t handled before a managed/native boundary  : 

Tools -> Options -> Debugging -> General -> menüsünün altında ki Break when exceptions cross AppDomain or managed/native boundaries seçeneğinde ki check’i kaldırmanız halinde hata düzelecektir.

Advertisements

Hatalar ve Çözümleri

MVC : Entity ‘de bir değişiklik yapıp kaydetmeye çalıştığımızda ” Validation failed for one or more entities. See ‘EntityValidationErrors’ property for more details ” şeklinde bir hata alıyorsak  en olası sebebi şunlar olabilir  :

  1. Veritabanında (database) NULL olamaz olarak yapılandırılmış (Allow Nulls işareti kaldırılmış) bir alana NULL değer girmeye çalışmak
  2. Belirtilen üst sınır dışında veri giriyi yapmaya çalışmak, örneğin, nvarchar(5) olan bir alana 5 karakterden uzun veri girişi yapmaya çalışmak.

Çözüm olarak try catch bloğunda

catch (DbEntityValidationException e)
{
     foreach (var eve in e.EntityValidationErrors)
     {
           Response.Write(string.Format("Entity türü \"{0}\" şu hatalara sahip \"{1}\" Geçerlilik hataları:", eve.Entry.Entity.GetType().Name, eve.Entry.State));
       foreach (var ve in eve.ValidationErrors)
       {
         Response.Write(string.Format("- Özellik: \"{0}\", Hata: \"{1}\"", ve.PropertyName, ve.ErrorMessage));
        }
         Response.End();
         }



şeklinde bir kod parçasıyla hangi property’den dolayı hata alındığını görebiliriz.

C#  :  System.InvalidCastException: Specific cast is not valid (Belirtilen atama geçerli değil ) hatası : Bu hata iletilecek datanın beklenen şekilde alınmadığı ya da atandığı datatable, list vs. ile uyumlu olmadığından dolayı verilebiliyor. Bu hatayla entity’de sp’den aldığım datayı datatable atarken aldım. Sp’nin döndüğü cursor’u kontrol ettiğimde bir kolonun , den sonraki ondalık kısım da uzun bir rakamlar dizisi geldiğini gördüm. Round ile kolonun 3 haneli gelmesini sağlayınca hata düzeldi.

SQL :String or binary data would be truncated : Bu hata tabloya insert etmek ettiğiniz kayıttan dolayı alınabilir. Insert edilen kolonun length’i ile gelen data genişliği uyuşmamaktadır. Kolon length’i arttırılabilir.

MVC : Httpcontext current does not contain a definition hatası : Sebebi Controlller class’ı da HTTPCOntext isimli bir property’ye sahiptir. Buradaki HTTPContext’in altında Current property’si olmadığı için hata alınır.

HttpContext.Current kısmını System.Web.HttpContext.Current şeklinde değiştirmek gerekir.