19 Aralık 2016 Pazartesi

SET FMTONLY ON – SET FMTONLY OFF

     Merhabalar, birazdan size MSSQL Server 'ın bir tabloya sorgu atınca sorgunun doğru çalışıp çalışmadığını hızlı bir şekilde görebilmenizi sağlayan bir SQL komutundan bahsedeceğim.Bu özellik , ortam değişkeni olarak ta bilinir. büyük tablolarınızı bir procedure içinde çağırıp kullanmadan önce SQL sorgusunun o tablonuz hatasız çalıştığını test etmenize olanak sağlar. Ayrıca veritabanınızda boş gelen tablolarınızın sebebi bu olabilir.

     Sorgularınızı sadece derlemek istiyorsanız bu özelliği SET FMTONLY ON yaparak aktif hale getirebilirsiniz. Böylece sorgularınız syntax yazım kurallarına göre denetlenir ve doğru olan sorgularda sadece tablonun içerisi boş olarak sadece ilgili sutün başlıkları gelir. 

SET FMTONLY ON



SET FMTONLY OFF



     Bu özellik varsayılanda OFF konumundadır. Burada dikkat edilmesi nokta bu özelliği ON durumda bırakmamanızdır yoksa server daki tüm tablolarınız içi boş olarak gelir.


     Şunu da belirtmekte fayda görüyorum Microsoft MSSQL Server ‘ın yeni sürümlerinde bu özelliği kaldıracağını açıkladı. Eğer sizde sürekli güncel versiyonlarda çalışmak zorunda kalıyorsanız bu kontrolleri kullanmamanızda fayda var. 
     


21 Kasım 2016 Pazartesi

32-bit Dll dosyasını IIS üzerinde 64-bit Web Servis Sunucusunda Çalıştırmak

Merhaba Arkadaşlar sizlere benim çözümü bulmakta zorlandığım bir Web Service publish ettikten sonra alınan “System.BadImageFormatException: Geçersiz biçimdeki bir program yüklenmek istendi. (HRESULT özel durum döndürdü: 0x8007000B)” hatasının nedeni ve basit olan çözümünü göstermek istiyorum.

Hatanın Ekran Alıntısı aşağıdaki gibidir.
 
   

Bunun nedenine gelecek olursak; yazdığınız yada kullanmak istediğiniz bir webservice projesine referans olarak eklenen dll dosyalarından birisi 32-bit te yazılmış ve sadece 32-bit makinelerde(sunucularda) çalışabileceğinden sizin publish ettiğiniz sunucu ortamıda 64-bit olduğundan IIS service bu dll i çalıştıramıyor.
Çok basit ve yalın bir işlem işlem bu sorunumuza çözüm bulacağız.

1. İlk olarak publish ettiğimiz web service uygulamamızın hangi uygulama havuzu üzerinde çalıştığını bilmemiz yada öğrenmemiz lazım, bunun içinse IIS Service Yöneticisi açıkken (yeri gelmişken ISS Service Yöneticisine çalıştıra inetmgr yazarak ulaşabilirsiniz) uygulamamız üzerine geldikten sonra ya sağ tıklayıp Uygulamaları Yönet -> Gelişmiş Seçenekler diyerek yada ekranın size göre sağ tarafındaki menüden Temel Ayarlar veya Gelişmiş Ayarlar seçilerek açılan ekrandan uygulamamızın hangi havuzda çalıştığını görebiliriz.Aşağıdaki alıntıda görülebileceği gibi benim uygulamam DefaultAppPool havuzuna tabi olarak çalışıyor.


            2.  Daha sonra sol taraftaki menüden Uygulama Havuzları seçilerek tüm havuzları görebiliriz. Buradan bizim uygulamamızın çalıştığı uygulama havuzunu bulup tıklayıp sağ taraftan onun Gelişmiş Ayarlar ını açıyoruz.



            3.  Gelişmiş Ayarlar altındaki 32-Bit Uygulamaları Etkinleştir seçeneğini TRUE konumuna getirdiğimiz zaman artık web servisimiz 32-bit te çalışan dll leri destekleri duruma gelecektir.