4 Temmuz 2012 Çarşamba

"DirectoryServices" Tür veya Ad Alanı Adı "System" Ad Alanında Yok Hatası


Tekrar Hoşgeldin!

Büyük bir hevesle o kadar yazdık bakalım noldu diyerekten "Run" butonuna tıkladığında;

CS0234: 'DirectoryServices' tür veya ad alanı adı 'System' ad alanında yok (bir derleme başvurunuz mu eksik?)

[İng:  CS0234: The type or namespace name 'DirectoryServices' does not exist in the namespace 'System' (are you missing an assembly reference?)]

şeklinde bir hata aldın. Senin için sinir bozucu bir şey çünkü aynı kodu birkaç projede kullanmıştın daha önce.

Kısa bir araştırma sonucu şu bilgilere ulaştın;

Bazısı inatla referanslara eklemen gerek demiş. Saçma... Çünkü referanslara eklemeden isim uzayına eklersen projeyi derleyemezsin zaten...

Bazıları 

<%@ Assembly Name="System.DirectoryServices, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %>

satırını sayfanın başına eklemen gerektiğini savunmuş... Hadi bi deniyim bakalım nolcak dedin fayda etmedi.

En son seni ikna eden bir cevap buldun. Daha önce de dediğim gibi birkaç projede bu kodu kullandın ve hiç sorun yaşamadın. Çünkü onlarda sınıfın App_Code asp.net klasörü içinde değildi. Sınıflarını bu klasörden çıkarıp App_Code klasörünü sildikten sonra herşey düzeldi.

Geçmiş olsun :)

28 Haziran 2012 Perşembe

Web.Config dosyasında connectionString şifreleme


Selam yine ben! Veritabanı bağlantıları içeren bir ASP.NET projen var ama connection string şifresiyle beraber Web.Config dosyanda kabak gibi ortada! Yapman gereken projeni local IIS'e publish ettikten sonra;

Başlat => Tüm Programlar => Microsoft Visual Studio 2010 => Visual Studio Tools => Visual Studio Command Prompt (2010)

açtıktan sonra komut satırına şunu yazman;

c:\...\...>aspnet_regiis.exe -pe "connectionStrings" -app "/uygulamaadi"

Bunu Visual Studio 2008 de denedin ama bu komut orda yok haberin ola... En azından sen bulamadın.

Kendi bilgisayarında IIS üzerindeki site için bu yöntem gayet güzel çalıştı fakat server a attığında bu komut çalışmadı. Çalışmama sebebi ise yukarıdaki komutun sadece "Default Web Site" altındaki uygulamalarda (application) geçerli olması. Eğer ayrıca oluşturduğun bir site için şifreleme yapmak istiyorsan -site "site-adı-veya-id" parametresini yine -app "/uygulamaadi" ile beraber girmen gerekiyor.

Her neyse bu kadar yazdın ama yine çalıştıramadın. Şifreleme için bir yöntem daha buldun. Bunun için server da Visual Studio Command Prompt (2010) komut istemini yönetici olarak çalıştırdın ve

c:\...\...>aspnet_regiis.exe -pef  "connectionStrings" "c:/inetpub/wwwroot/site_klasor_adi" -prov DataProtectionConfigurationProvider

komutunu kullanarak şifrelemeyi başardın. İlk yazdığında olmamıştı ama bilmemne.tmp dosyası oluşturulamadı hatasından sonra komut istemini yönetici olarak çalıştırmayı akıl edebildin... Bravo... Komut istemini en başında yönetici olarak çalıştırsaydın belki bu kadar uğraşmayacaktın. (Küpe no:1)

Merhaba Ben!

Selam dostum naber? Buraya bulduğun önemli bilgileri unutma diye koyacağım. Hani birşey araştırırken Opera tablarını sayfa başlığı görünmeyene kadar dolduruyorsun sonra da tarayıcıyı kapatmaya kıyamıyorsun ya! Bu durum en az senin kadar beni de sinir ediyor dostum.

Neyse bakalım işte böyle. Hadi şimdi çık sonra gel, daha birşey yazmadım ;)