Tags: , , , , | Categories: Hata, Web Uygulaması Posted by okutbay on 28.02.2014 08:46 | Yorumlar (0)

Nowadays, i'm working on my CMS project called Weblebici CMS. I aimed to create very simple and lightweight CMS web application. But this is not the subject of this article.

Last night i created a simple default template but later i began to see some weird exception on my log. It was weird because there was not any detailed information about the problem.

It was a "System.Web.HttpException" and message says. "File does not exist". But there is no info which file exists. First i thought i used a file type which static file handler cannot access. I checked the extensions and nothing seemed wrong to me. Later i decided to check html output of the page. I checked line by line, file by file... I found nothing on the first pass. In the second pass i noticed the error.

 There was a relative url like "~/a/b.ext" and i forget to use this value as a paramter for @Url.Content() method. It was easy to fix but hard to find :D

 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , | Categories: Fun, Hata Posted by okutbay on 26.04.2012 22:01 | Yorumlar (0)

Garip microsoft hatalarına oldukça alışık bir insan olmama rağmen halen beni şaşırtmayı başaran hatalar çıkabiliyor.

Tebrik ediyorum.

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Hata Posted by okutbay on 22.12.2011 00:55 | Yorumlar (0)

Could not load file or assembly 'your project' or one of its dependencies. The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) 

Başımıza gelebilecek durum,

Kontrol ettiniz, ilgili dll yerli yerinde, referens eklenmiş, web.config dosyasında yanlış bir ayar yok.

Internette aradınız, taradınız temp proje dosyalarını (*) silin dediler. Denediniz o da yemedi. Hala hatayı alıyorsunuz.

Bence bir de projenizin hedef frameworkünü kontrol edin. İlgili bileşenin desteklenmediği bir framework için derleme yapmaya çalışıyor olabilirsiniz... 

* Bu dosyalar genelde şuralarda olur

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\

Windows 7 32 bit sistemler için
C:\Users\[username]\AppData\Local\Temp\Temporary ASP.NET Files\

Windows 7 64 bit sistemler için
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\

1 kişi tarafından 4.0 olarak değerlendirildi

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , | Categories: Hata, IDE, Tip Posted by okutbay on 14.10.2011 00:01 | Yorumlar (0)

Geçen hafta içinde yeni bir proje ekibine dahil oldum. Proje oldukça heyecanlı bir proje ama her zaman olduğu gibi bitiş tarihi belli, ne istendiği kabaca belli ama detaylar bize kalıyor... :D Ama bu yazımda bu konuyla ilgili bişiler olmayacak. Yeni projeyle beraber yaşadığım bir sorunu ve çözümünü anlatmaya çalışacağım.

 .NET frameworkü ilk versiyonundan beri kullanırım, Visual studio ise Visual Interdev zamanlarindan bu yana aktif kullandığım bir ürün. Hafta başında sıkıştırılmış olarak kaynak kodları ve veritabanı yedeği teslim aldım. Bir şekilde bunları çalıştırıp proje hakkında fikir sahibi olmam gerekiyordu.

Hemen veritabanı yedeğini yerel olarak bilgisayarımda buluna sql sunucusuna açtım. Oh mis. Sonra her developer gidi neymiş şu proje bağlantı cümlesini düzenliyip bakayım diye .sln dosyasına tıkladım... Ama karşıma bir mesaj çıktı... 

The project file "x" cannot be opened. Project type is not supported by this installation.

Dosya VS 2008 .sln dosyasıydı ve bu mesaj genelde VS 2005 ile web application destek güncellemesi kurulu olmadığında o biçimde yaratılmış projeleri açmaya çalıştığımızda almaya alışık olduğumuz mesajlardandı.

"Allah, Allah, çok ilginç..." diyerek dosyayı gönderen arkadaşı sorayım dedim. Developerı ortada olmayan ve bilgi alınma şansı kalmamış bir proje olduğunu söyledikten sonra "silverlight 2.0 projesi olması lazım" dedi...

Gel gelelim ben de zaten bi sürü silverlight SDK hödösü kuruluydu. Ufak bir googledan sonra Microsoft® Silverlight™ 2 Tools for "Visual Studio 2008 SP1" kurmam gerektiğini öğrendim... Ohhh dedim şimdi işin yoksa "Microsoft Visual Studio 2008 Service Pack 1" kur bi de diye hayıflandım... SP1 i kurdum sonra silverlight toolsu kurayım dedim. Ama ne mümkün. fatal error verip kurulumu kesiyordu. Sonra öğrendim ki ne kadar silverlight hedesi varsa kaldırıp öyle kurmak gerekiyormuş... SP1 kurucam diye hayıflandığıma çok pişman olmuştum... Sen miydin hayıflanan, al sana demişti şakacı bir kişilik. Uzun lafın kısası bir şekilde kurduk ve .sln dosyasını açtığımda başta yükleyemediğim 5 projeden 3ünü yüklemeyi başarabilmiştim.

Şekil 1: Başarıyla yüklenen 3 proje. 

Ama hala 2 proje saçma şekilde yüklenmiyordu.

 

Şekil 2: Proje yüklenme hatası.

"Ne ulan bu projeler" diye bir text editör ile proje dosyasına bakarak tiplerini anlamayı düşündüm. Tabi adamlar guid tutmuşlar ve bişi almadım. Nedir bunlar diye aradım ve proje tipleri normal şartlarda sahip olduğum kurulumun açması gereken cinstendi.

 

PlantDoctorDataServices.csproj

{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}

PlantDoctorWebPart.csproj

{593B0543-81F6-4436-BA1E-4747859CAAE2};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 

 

Not: Ulaştığım tablo gayet faydalı bir tablo. Buraya da koyayım lazım olur sonra

Project Type Description Project Type Guid
Windows (C#) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Web Application {349C5851-65DF-11DA-9384-00065B846F21}
Web Site {E24C65DC-7377-472B-9ABA-BC803B73C61A}
Distributed System {F135691A-BF7E-435D-8960-F99683D2D49C}
Windows Communication Foundation (WCF) {3D9AD99F-2412-4246-B90B-4EAA41C64699}
Windows Presentation Foundation (WPF) {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
Visual Database Tools {C252FEB5-A946-4202-B1D4-9916A0590387}
Database {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}
Database (other project types) {4F174C21-8C12-11D0-8340-0000F80270F8}
Test {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Legacy (2003) Smart Device (C#) {20D4826A-C6FA-45DB-90F4-C717570B9F32}
Legacy (2003) Smart Device (VB.NET) {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}
Smart Device (C#) {4D628B5B-2FBC-4AA6-8C16-197242AEB884}
Smart Device (VB.NET) {68B1623D-7FB9-47D8-8664-7ECEA3297D4F}
Workflow (C#) {14822709-B5A1-4724-98CA-57A101D1B079}
Workflow (VB.NET) {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8}
Deployment Merge Module {06A35CCD-C46D-44D5-987B-CF40FF872267}
Deployment Cab {3EA9E505-35AC-4774-B492-AD1749C4943A}
Deployment Setup {978C614F-708E-4E1A-B201-565925725DBA}
Deployment Smart Device Cab {AB322303-2255-48EF-A496-5904EB18DA55}
Visual Studio Tools for Applications (VSTA) {A860303F-1F3F-4691-B57E-529FC101A107}
Visual Studio Tools for Office (VSTO) {BAA0C2D2-18E2-41B9-852F-F413020CAA33}
SharePoint Workflow {F8810EC1-6754-47FC-A15F-DFABD2E3FA90}
XNA (Windows) {6D335F3A-9D43-41b4-9D22-F6F17C4BE596}
XNA (XBox) {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2}
XNA (Zune) {D399B71A-8929-442a-A9AC-8BEC78BB2433}
SharePoint (VB.NET) {EC05E597-79D4-47f3-ADA0-324C4F7C7484}
SharePoint (C#) {593B0543-81F6-4436-BA1E-4747859CAAE2}
Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}

Kaynak: http://www.mztools.com/articles/2008/mz2008017.aspx

Proje tipinden bir sonuç çıkmayınca çaresizce hata mesajınını googleda arayıp alakalı olabilecek cevaplara bakmaya başladım. Kimin aklına gelirdi "<ProjectTypeGuids></ProjectTypeGuids>" tagleri arasında yazan guidleri silince projelerin yükleneceği. Benim de gelmezdi bir yerde okumasam. Sildim ve projeler şimdi yükleniyor... Patrona söylesen hayatta inanmaz böyle bişiye bir gün harcadığına... :D

Neyse projeleri yükledik ama bakalım derlenecek mi? %99 derlenmeyecek. Ama şu an mutluyum...  

 

  

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories: Coding Disaster, Genel, Hata, Programlama, SSS (FAQ) Posted by okutbay on 24.11.2010 14:52 | Yorumlar (0)

Yazılım işindeyseniz sıfırdan geliştireceğiniz yeni projelerin toplamından daha fazla bitmiş, çalışmakta olan sistemlere bakım yapmakla, hatalarını gidermekle uğraşacağınız çok kuvvetli bir olasılıktır (Bu gerçeği bilerek iş hayatına atılırsanız yaşayacağınız hayal kırıklıklarının mesleğinize duyduğunuz sevgiyi azaltmasının önüne geçebilirsiniz gibi geliyor...)

Bir gerçek daha yazılım geliştirirken karşınıza çıkacak en can sıkıcı hatalardan biri null reference hatalarıdır. Can sıkıcıdır çünkü kodu yazan arkadaşınız (ya da siz) nasıl olur da null olma olasılığına karşı gerekli kontrolü yapmayı unutmuşdur.

Ama bu hatadan daha da can sıkıcı olanı bir string ya da dizinin null olmasıdır. Çünkü bir dizi ya da string null ise .Lenght(), .ToString() gibi metodlarını çatır çatır patlayacaktır.

Bu duruma en temel çözüm her hangi bir özellik ya da method string ya da array döndürüyorsa null döndürmesine asla izin vermemektir (bunu sadece ben söymiyorum Microsoft da best practice olarak bunu öneriyor...). NULL yerine boş string ya da dizi döndürün...

Klavyeler şen ola...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories: Programlama, Hata Posted by okutbay on 12.08.2010 16:24 | Yorumlar (1)

Yeni yazmaya başladığımız projede teknolojinin son nimetlerinden faydalanmak için Visual Studio 2010, .NET Framework 4.0, Entity Framework 4.0 kullanalım dedik... Hatta veritabanımızda Sql Server 2008 olsun dedik...

Development başladı. Her şey çok güzeldi... Ta ki müşteriye göstermek üzere mevcut sunucuların üzerinde bir test sürümü yayınlayana kadar...

Uygulamayı publish ettik... Ama yazdığımız formlardan bir kısmı kayıt eklemiyordu. Logları incelediğimizde şöyle bi exception ile karşılaştık...

"System.ArgumentException: The version of SQL Server in use does not support datatype 'datetime2'."

İlk başta afalladık kaldık tabi... "datetime2 de ne ola ki?"  dedik... Farklı kaynaklardan bulduğumuz çözüm işe yaramayınca daha da bi afalladık...

Sorun geliştirme yaptığımız veritabanı ile sunucu üzerindeki veritabanı versiyon farklılığından kaynaklanıyor. Model .EDMX xmlinde bulunan ProviderManifestToken="2008" değerini 2005 olarak değiştirdik... Tekrar derleyip uygulamayı güncelledik. Hata değişmedi. Üstüne gittik veritabanı uyumluluğunu 2008 den 2005 e çekip aynı işlemi tekrarladı... Sorunu aşamadık...

Bakalım nasıl çözeceğiz... Merakla araştırmaya ve denemeye devam ediyoruz...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , | Categories: Hata, Web Uygulaması Posted by okutbay on 01.12.2009 17:08 | Yorumlar (0)

unable to start debugging on the web server

Just enable “Integrated Windows authentication” of your IIS web application

unable to start debugging on the web server2 

If this is not working try to re-register your .NET framework with aspnet_regiis.exe

Happy coding.

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , , , , | Categories: Hata, Web Uygulaması Posted by okutbay on 18.06.2009 14:47 | Yorumlar (0)

İş yerinde geliştirmekte olduğumuz projelerde şimdiye kadar MVC Framework Preview 3 kullanmaktaydık. ASP.NET ten farklı çalışma mekanizması nedeniyle yukardaki hatayı sık sık alır ve  ValidateRequest = false yapmamıza rağmen sorunu aşamazdık. Çünkü post edilen bilgi önce kontroller a düşmekte ve exception oluşmaktaydı.

Peki temel olarak bu hatanın nedei neydi. Önce bunu bir hatırlayalım. 

ASP.NET kullanan yazılımcılar form alanlarından gelebilecek zararlı kodlara karşı daha fazla korunmaya sahiptirler. Yapılabilecek XSS (Cross site script) saldırılarını önlemek yapılan tüm istekler bir geçerlilik kontrolü (validation) işleminden geçer. Bu işlemde temel olarak script bloklarını başlatan ve bitiren taglerde yer alan < ve > işaretleri aranır. Bulunduğu zaman da "System.Web.HttpRequestValidationException" oluşturulur.

Bu sorunu geçiştirmek için sayfa seviyesinde ya da uygulama seviyesinde (ki bu hiç mi hiç tavsiye edilmez.) Geçerlilik kontrolünü kapatabilirsiniz. Bu durumda dış kaynaklardan gelen tüm girdileri zararlı olabilecek metinlere, karakterlere karşı kontrol etmeniz ve filtrelemeniz gerekmektedir.

Bizim durumumuzda ise hiçbir şekilde bu geçerlilik kontrolü geçiştirilememekteydi. Ta ki MVC 1.0  çıkana kadar. Aslında bu özellik Preview 4 ile birlikte gelmesine rağmen biz 3 den direkt olarak MVC 1.0 a atladığımızdan burada farkına varabildik.

Bu yenilik sayesinde controller class tanımımız ya da herhangi bir controller action metod tanımımız için "istek geçerlilik kontrolü"nü devre dışı bırakabiliyoruz.

Şöyle ki: 

    1 [ValidateInput(false)]

Bu öznitelik (attribute) sayesinde konulduğu yere göre ilgili controller sınıfının tüm metodları ya da sadece belirli action metodları için bu özellik iptal edilebilmekte.

sınıf Seviyesinde kullanım 

    1 [ValidateInput(false)]

    2 public class BilgilerController : Controller

    3 {

    4 }

 Controller Action seviyesinde kullanım 

    1 [ValidateInput(false)]

    2 public ActionResult BilgilerFormIslem()

    3 {

    4     return View("abc");

    5 }

Böylece ilgili sayfalarda HTML kod kabul eden editör vb. kontroller kullanabiliyoruz. Tabi tekrar hatırlatalım. Bu durumda gelen içeriğin güvenli olup olmadığının denetlenmesi ya da filtrelenmesi yazılımcı tarafından gerçekleştirilmek zorunda...

Kolay gelsin... 

2 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Hata, Programlama, Web Uygulaması Posted by okutbay on 01.04.2009 10:54 | Yorumlar (0)

Bu sabah üzerinde çalışmakta olduğumuz bir projenin çalışmakta olan cookie yazma okuma metodlarını kullanarak bir geliştirme yapmaya çalıştım. Enteresan şekilde browser kapatılıp tekrar açıldığında cookie kayboluyor ve yazdığım kod yapması gereken işlemleri yapamıyordu. Enteresan diyorum çünkü kullandığım cookie yazma ve okuma metodları sitenin bir çok yerinde kullanılıyor ve her hangi bir sorun yaşanmıyordu.

Kodu incelediğimizde gayet nizami görünüyordu.

    1 var cookieToSetValue = new HttpCookie(CookieKeyName, CookieValue);
    2 cookieToSetValue.Expires.AddDays(1);
    3 HttpContext.Current.Response.Cookies.Add(cookieToSetValue);

Debug ediyor ve kodun doğru çalıştığını varsaydığımız için metodun içine girip bakmaya gerek görmüyorduk. Sonra sağolsun Burak Kardeşim metodun içine girmeyi düşündü ve expire date değerinin yanlış olduğunu fark etti. Böylece acımız da son bulmuş oldu.

Koddaki hata mevcut nesne üzerindeki sonlanma tarihinin üzerine birgün eklenmesiydi. Eğer burada bir tarih daha önce ayarlanmamış ise değer en küçük tarih değeri oluyor ve buna bir gün eklendiği için cookie otomatik olarak sonlanıyordu.

Düzeltmek için kurguyu biraz değiştirip günün tarihine bir gün ekle diyerek sorunu aştık.

    1 cookieToSetValue.Expires = DateTime.Now.AddDays(1);

Kıssadan Hisse : Eğer cookileriniz kayboluyorsa önce Expires propertysine bakın :) 

2 kişi tarafından 4.0 olarak değerlendirildi

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: | Categories: Hata, IDE, Web Uygulaması Posted by okutbay on 14.01.2009 19:02 | Yorumlar (0)

Son günlerde Visual Studio 2008 ile çalışırken can sıkıcı bir hata mesajı almaya başlamıştım...

Hata mesajı "Error connecting to undo manager of source file 'x.aspx.designer.cs' derken bu mesajı debug etmek istediğimde veriyor olması çok anlamsız geliyordu... Anlamsız geldiği için anlamsız bir çözüm geliştirdim... İlgili dosya bi şekilde bozuluyor varsayımı ile bu dosyanın IDE tarafından oluşturulan bir dosya olduğu gerçeğini birleştirerek adı geçen dosyayı sildim... Daha sonra ilgili .ASPX dosyasına Visual Studio 2008 IDE ile Solution Explorer da ters tıklarak "Convert to Web Application" dedim ve dosyanın tekrar oluşturulmasını sağladım... Ve sorun çözüldü... Arada bir tekrar ediyor ve çözümü tekrarlıyorum...

Dosya neden bozulur, nedenini tam anlasam çok rahatlayacağım... :)

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5