This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault=”Deny”)

Merhaba arkadaşlar

Daha eski IIS ve sunucudan, yeni Microsoft Windows Server 2016 üzerine kurulu IIS 10’da uygulamamızı çalıştırmak istediğimizde aşağıdaki hata ile karşılaşabiliriz.

HTTP Error 500.19 – Internal Server Error

The requested page cannot be accessed because the related configuration data for the page is invalid.

This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault=”Deny”), or set explicitly by a location tag with overrideMode=”Deny” or the legacy allowOverride=”false

This configuration section cannot be used at this path. This happens when the section is locked at a parent level.

Çözümü ise çok basittir.

Bilgisayarınızdan C:\Windows\System32\inetsrv\config dosya yolunu takip edin. applicationHost config dosyasının içerisindeki overrideModeDefault=”Deny” yazan kısmı “Allow” olarak değiştirin. Ardından IIS’i restart ettiğinizde sorun giderilmiş olacaktır.

** Eski

Multiple actions were found that match the request

Merhaba arkadaşlar

Bugünkü yazımda, benim gibi MVC Projenizde ayrıyetten bir de WEB API kullanıyorsanız bu hata ile karşılaşmanız muhtemeldir.

Öncelikle hatanın neden kaynaklandığını ve senaryomu anlatmak isterim.

Üzerinde çalıştığım .NET MVC projemde, bu kez MVC’de kodlanan ekranların Android mobil uygulamasında WebView componenti içerisinde de kullanılacak hizmet vermesi gerekti. Oturup sıfırdan native uygulama yazmak yerine, mobil uygulamadaki belli başlı alanları native yapıp, diğer kısımları mevcut responsive olan MVC projemi kullanmaya karar verdim.

İlk olarak uygulamaya giriş yapacak kullanıcıların “Üyelik Girişi” login mekanizmasını kullanmaları için projedem WEB API kullanarak webservis oluşturdum. Bu webservis ile gerekli kontroller yapılıp, kullanıcının uygulamaya girişi sağlanıyordu.

Akabinde bir de kullanıcılar için “Şifremi Unuttum” mekanizması gerekliydi. Fakat sorun şu ki App_Start/WebApiConfig.cs Route class’ımdaki default “routeTemplate” sadece controller’a bakıyordu.

Bu nedenle adres çubuğundan web api’ye ait method çağırıldığında aşağıda hata ile karşılaşıyordum.

ExceptionMessage :Multiple actions were found that match the request

multiple-actions-were-found-that-match-the-request
multiple-actions-were-found-that-match-the-request

Akabinde App_Start/WebApiConfig.cs classında yer alan kodu bir aşağıdaki blok ile değiştirdiğimde sorunu gidermiş oldum.

Böylelikle Web Api çağırıldığında sadece controller’a değil, hem controller’a hem de action’ı birlikte kontrol edip ona göre süreci yönetmeye başlayacak.

Umarım faydalı bir yazı olmuştur, bir sonraki yazımda görüşmek üzere

C# 2 Liste Arasındaki Farkı Bulmak

Merhaba arkadaşlar,

Bugün lazım olan basit ama kullanışlı bir kod bloğunu sizle paylaşmak istedim. 2 tane obje listemiz var, ve bu 2 liste arasındaki farkı nasıl buluruz sorusunun cevabı aşağıdadır.

Umarım işinize yarar, bir sonraki yazımda görüşmek üzere.

SQL Tablosunun C# Classını Oluşturmak

Merhaba arkadaşlar,

Bildiğiniz üzere projelerimize database First yaklaşımı üzerinden Entity Framework ORM Tool’u bağlarken, veritabanındaki alanlarımızı class haline getirmemiz gerekmektedir. Zaman alan ve sıkıcı bir iş olduğu için kolay yolunu aramaya başladım.

Dostum Yavuz Aydoğan sağolsun bu konuda elinde daha önceden bulunan bir SQL Sorgusunu benimle paylaşmıştı, ben de tabiki blog takipçilerimle paylaşmak için izin istedim kendisinden.

Teşekkürler Yavuz Aydoğan iyiki varsın 🙂

Senaryomuz şu şekilde:
[Service].[ScrapApprovalPaymentType] adında SQL Server’da bir tablomuz var. (Örnek olduğu için tabloyu bilerek kısa tuttum, siz daha fazla field’a sahip tablolarda kullanabilirsiniz.)

Aşağıdaki kodu SQL Server query’de çalıştırdığınızda bize [Service].[ScrapApprovalPaymentType] tablosunu direk C# class’ı içerisinde yer alan property’lerini dönecek.

T-SQL Kodumuz:

Dönen sonuç

Ufak tablolarda çok fazla vakit kazandırmasada, fazla field içeren tablolarda hayat kurtaran bir yol olarak sıklıkla kullanıyorum 🙂

Umarım sizinde işinize yarar, bir sonraki yazımda görüşmek üzere

“exited with code 255” hatası ve çözümü

Merhaba arkadaşlar,

Bugün insanı çileden çıkaran bir Nuget hatasını ve çözümünü sizlerle paylaşmak istiyorum.

Projeyi, yeni format attığım PC’ye TFS üzerinden çekip ayağa kaldırmak istedim. Herşey yolunda giderken, build solution işleminden sonra aşağıdaki ekran görüntüsündeki hata ortaya çıkmaya başladı.

Google’da epey bir araştırdım fakat bir türlü sonuca ulaşamadım. Nuget’i kaldırdım, package’ları tekrar yükledim vs vs…

En sonunda projeyi build yaparken output ekranında şöyle bir hatayaya gözüm ilişti. “my command prompt has been disabled by administrator

Nedir ne değildir derken, CMD.exe’nin dışarıdan erişilmesine izin verilmemesi durumu söz konusu olduğunu farkettim ve aşağıdaki çözümü uyguladım sorunsuz çalıştı.

1) Registry editörünü açıyoruz. CMD => Regedit.exe
2) [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
3) DisableCMD = 1 olarak göreceksiniz bu değeri 0’a çekmelisiniz.
4) Ardından projenizi tekrar build edin, sorun giderilmiş olacak.

Umarım bu sorunu yaşayanlar, yukarıdaki adımları takip ederek kolayca problemlerini giderebilirler.

Bir sonraki yazımda görüşmek üzere

SQL Server .BAK Yedek Dönmek

Merhaba arkadaşlar,

Bugünkü yazımda sizlere SQL Server 2012 üzerinde .bak uzantılı veritabanı yedeğinin nasıl dönüleceğini anlatacağım.

SQL Serve üzerinden veya Plesk panelden aldığımız .bak uzantılı veritabanı dosyamızın adı “pnhMarmaraBB_20171228.bak” olsun.

1) Bu .bak uzantılı dosyamızı sunucumuz üzerinde \MSSQL\MSSQL11.MSSQLSERVER2012\MSSQL\Backup\ klasörünün içine kopyalıyor ve aşağıdaki adımları takip ediyoruz.
(\Backup\ klasörünün uzantısı SQL Server kurulum klasörlerinden dolayı farklılık gösterebilir.Kendi kurulumunuza göre bu klasörü bulabilirsiniz.)

2)

3) .bak dosyamızın bulunduğu klasörü “Backup file location” kısmından belirleyip, hemen yanındaki arama kutucuğuna “*.bak” yazdığımızda, backup klasöründeki .bak dosyalarımız gözükecektir. Buradan “pnhMarmaraBB_20171228.bak” yedeğimizi seçip OK tuşuna basarak devam ediyoruz.

4)

5)

6)

7)

8) ve işlem başarı ile tamamlandı 🙂

Böylelikle bir makalenin daha sonuna geldik arkadaşlar, umarım faydalı olmuştur. Bir sonraki yazımda görüşmek üzere şimdilik hoşçakalın.

jQuery Ajax ile HTML Tablo Doldurmak

Merhaba arkadaşlar,

Bugünkü yazımda, modern MVC Web projelerinde sıklıkla kullanılan jQuery Ajax ile HTML tablo oluşturma işlemini nasıl gerçekleştirebileceğinizi paylaşmak istiyorum.
Daha sonra dilerseniz ASP.NET Projelerinize’de bu örneği ufak tefek değişiklikler ile uygulayabilirsiniz.

İlk olarak senaryomuzdan bahsedeyim, ardından adım adım gerçekleştirelim.

Bu örnek sonunda site ziyaretçimiz, ekranında göreceği butona tıklandığında database’de yer alan üyeleri UserTypeId parametresine göre tablonun içerisinde görecek.

1) Öncelikle dataları getireceğimiz butonu ekliyor ve ardından butonumuzun Id’sini “btnLoadUserData” olarak tanımlıyoruz.

2) Dataların gösterileceği div’i sayfamıza ekliyoruz.

3) Controller tarafında ise yapımız şu şekildedir.
İşlemleri gerçekleşeceği controller’ın adı: UserController

4) _userListPartial adında, yeni bir Partial View oluşturuyoruz. Burada dikkat etmeniz gereken, Partial View’daki modelimiz, UserController‘daki GetMembers ActionResult’ından dönen model ile aynı olmalıdır.

5) Butona tıklandıktan sonra ne olacak peki ? Ajax Get ile UserContoller‘ın içinde yer alan GetMembers metodumuzu UserTypeId parametresini gönderiyoruz. GetMembers metodu bize liste dönderecektir. (İster liste, ister Dto döndürebilirsiniz. Bu yazımızda basit bir örnek üzerinden gideceğimiz için şimdilik liste göndermemiz, aklı karışan arkadaşlar için daha faydalı olacaktır. 🙂 )

The End… Hepsi bu kadar arkadaşlar 🙂

Paylaştığım örnek kodları ve işleyişi, kendi iş akışınıza uyarlayabilir, kolaylıkla projelerinizde kullanabilirsiniz.

Umarım jQuery Ajax ile Tablo Doldurma konusunda sorun yaşayan arkadaşlarımıza kolaylık sağlar. Bir sonraki yazımda görüşmek üzere, sağlıcakla kalın 🙂

Cannot truncate table because it is being referenced by a FOREIGN KEY constraint hatası ve çözümü

Merhaba arkadaşlar,

SQL Server üzerinde oluşturduğumuz tablolar arasında Foreign Key (FK) bağlantıları var ve bu bağlantılı tablolara daha önce veri eklenmiş ise, T-SQL’den “truncate table” komutunu çalıştırdığımızda aşağıdaki hatayı alırsınız.

Cannot truncate table because it is being referenced by a FOREIGN KEY constraint.

Öncelikle bu hatanın nedenini, ardından da bu hatanın çözümünü paylaşmak istiyorum. Hatanın nedeni, Foregin Key’ler ID bazında tablolar arasında ilişki kurduğu için, sizin tablonuz boş olsa bile, bu FK ID’leri bağlantılı olduğu tablolar için ayrılmıştır. (allocate edilmiştir).

Çözümü ise çok basittir. Aşağıdaki kodu çalıştırarak, tablo üzerinde bahsettiğim ayrılmış ID’leri sıfırlayarak, sizin truncate işlemini gerçekleştirmenize olanak sağlar.

Umarım faydalı olmuştur, bir sonraki yazımda görüşmek üzere 🙂

Bootstrap dropdown-toggle Menü Başlığına Link Ekleme

Merhaba arkadaşlar,

Bugünkü yazımda, Bootstrap’da “dropdown-toggle” class’ına sahip menü başlığına nasıl link ekleyebilirsiniz bu konuyu paylaşacağım.

Genellikle bootstrap kullanan arkadaşlar bu senaryo ile ilgili sıklıkla karşılaşmışlardır. Yine de paylaşmakta fayda olacağını düşünüyorum, umarım ilk defa karşılaşacak arkadaşlar için güzel bir kaynak olur 🙂

Senaryomuz
Bootstrap’da header menümüz içinde çeşitli başlıklarımız var. Anasayfa, Hakkımızda, Ürünler, Referanslar, vs…

Ürünler menü başlığımızın altında ise sıralı olarak ürün başlıklarımız olsun.

Malum, alt menülere link vermede herhangi bir sorun yok 🙂

Peki ya Ürünler dropdown menü başlığına link vermek istersek nasıl yapacağız ?

Menü yapısına göre ÜRÜNLER başlığına aşağıdaki sadece href=”Urunler”… tag’ı ekleseniz malesef başarılı olamayacaksınız 🙂

Malesef dropdown-toggle class’ı attribute’nü bir şekilde eziyor.

Bu nedenle bootstrap dropdown-toogle menüsü başlığına link vermek için aşağıda yer alan jQuery kodunu tag’inizden hemen önce kullanmalısınız.

SQL Update Sorgusunda Where ve Order By Kullanımı

Merhaba arkadaşlar,

Bugün sizlere çok basit ama hadi yazalım dediğinizde durum bir kaç dakika düşünmenize sebep olan T-SQL’de whereve update kullanılan sql sorgusunu paylaşacağım.

Paylaşacağım örnekte, yeniden eskiye doğru bazı kayıtların DiscountPercentage1 alanına DiscountPercentage verileri ile güncellenmesini sağlayacağız.

Sistemde 4 milyon kayıt olduğu için bu T-SQL kodunu Job’a ekleyerek ve 15000’er 15000’er güncellemiş olacağız.

Siz kendinize göre bu sorguyu güncelleyebilirsiniz, önemli olan sql update sorgusunda where ve update komutlarının nasıl kullanıldığına ait bir örnek elinizde olması.

Umarım faydalı olmuştur, bir sonraki yazımda görüşmek üzere.