16 Şubat 2011 Çarşamba

Microsoft SQL Veritabanını EMERGENCY Mode ile Kurtarma (Recovery) Yöntemi.

Microsoft SQL Veritabanını EMERGENCY Mode ile Kurtarma (Recovery) Yöntemi.
Bir Sql veritabanı genelde 2 dosyadan oluşur ve tüm tablo, prosedür, view,indeks gibi  nesnelerin hepsini bu dosyalarda tutar. Eğer bir sebepten dolayı dosyada bi bozukluk tutarsızlık meydana gelirse dosyayı  mdf ve ldf dosyalarımızı atach ederken aşağıdaki gibi korkutucu bir mesajla karşılaşabiliriz.
 
Bizim bu mesajı aldığımız veritabanı  sql 2005 express edition’da yaşandı. Ve çözüm için tavsiye edilen yöntemleri önce sql2008 R2, sql2008 express gibi sunucularda denedim ancak bunlarda belli bir aşamadan sonra veri dosyasının upgrade etmemizi söyleyen bir mesajla karşılaştım. Bu sebeple dosya hangi versiyonda bir veritabanında iken sıkıntı oluştu ise o versiyonda bir db sunucusunda çözüme çalışmak lazım.



İlk yapacağımız iş kendi dosyalarımızı atach edemediğimizden sql’i kandırarak attach edilmiş gibi göstermek.  Bunun için bozuk veritabanı ile aynı isimde bir veritabanı oluşturalım. Bizim yaptığımız uygulamda dosyalarımızın konumları aşağıdaki resimdeki gibidir.

8 Şubat 2011 Salı

Microsoft Ofis Mail Merge ile şablon bir metni bir çok kişi için kısa sürede oluşturma.


Mail merge word’ün bir çok kişinin keşfetmediği için aynı işi çok uzun yollardan yaptığı güzel bir özelliktir.
Bir word belgemizde aşağıdaki gibi bir şablon metnimiz var diyelim. 


Burada <> ile ifade edilen alanlara değişik şahıslara ait bilgiler gelelerek belgenin otomatik her kişi için çoğaltılmasını istiyoruz.
Bu bilgiler elimizdeki bir excel belgede kayıtlı olsun.  Excel  içeriği şu şekilde olsun:

isim
hesapno
miktar
adres
turgut
4123412
4432
a caddesi b sokak no:12
ahmet
234234
343
d caddesi t sokak no:15
mehmet
423423
234
m caddesi g sokak no:2
cumhur
5345345
534
h caddesi d sokak no:15
kezban
23423423
324
j caddesi l sokak no:13
demet
234234
3434
j caddesi l sokak no:16

...
...

Şimdi word belgemizi açalım ve ilk iş olarak listemizi word’e gösterelim.

7 Şubat 2011 Pazartesi

HttpHandler ile güvenli dosya paylaşımı.

 Bildiğiniz gibi web yapısında herşey request-response mantığı içinde devam eder. Bir istek (request) sunucuya gelince, hangi tanımlanmış kod'un (ddl,class,exe,ashx ) bu istekle ilgilenip bir cevap döneceği handler ( kotarıcı, işleyici) kavramını oluşturur. Varsayılan olarak aspx,ascx, vb bir çok dosyanın bir handleri vardır. ve bu handler atamasına IIS arayüzünden erişebilirsiniz.


Normalde bir rar, zip, pdf gibi dosyalar sunucudan istenince download edilebilir şekilde clienta gelirler. yani clietn istemci yani web tarayıcılar bu dosyaları indirme veya açma işlemini yapabilirler. Biz eğer kendimiz bu dosya tiplerine bir handler yazarsak şifreyi doğru girmeye kullanıcılara dosyalarımızı göndermeyebiliriz. Doğru girdiklerinde ise normal handler ne yapıyorsa o şekilde dosyayı istemciye yollarız

Öncelikle bir kaç rar dosyası bulup bunlardan bazılarını uygulama kök dizinimize bir kısmınıda \secureshare klasörü altına kopyalayalım. sonra bu dosyalara browse edeciğimiz webform1.aspx gibi bir sayfada link verelim.

webform1.aspx'den :


  <hr>
        güvenli içerik : <br />
    <a href="secureshare/a.rar">a.rar</a><br />
     <a href="secureshare/b.rar">b.rar</a> <br />
     <a href="secureshare/c.rar">c.rar</a><br />
     <a href="secureshare/d.rar">d.rar</a>
  
     <hr />
       şifresiz- içerik : <br />
       <a href="a1.rar" >a1.rar</a><br />
       <a href="d1.rar" >d1.rar</a>
  

4 Şubat 2011 Cuma

IIS Sunucuda uygulama havuzunu farklı bir kimlik ile çalıştırmak

IIS Sunucuda uygulama havuzunu farklı bir kimlik ile çalıştırmak.
Varsayalın ayarlarla çalıştırılan bir IIS sunucusu  NETWORK SERVICES hesabı veya IISUSR_<MAKINEADI>  hesabı  ile ilgili klasörlere ve sql veritabanına erişir. Ancak bazı durumlarda bizim kendi oluşturduğumuz bir lokal veya domain kullanıcısını Application Pool kısmında kimlik olarak göstermemiz ve bu kullanını yetkileri ile web uygulamasını çalıştırmamız gerekebilir. Bu durumun gerekli olduğu bir senaryo şöyle olabilir.
Web sunucunuz bir sharepoint portal server üzerinde koşuyorsa varsayılan olarak sql sunucunuzun güvenlik ayarlarında Server Authentication kısmında  Windows Authentication mode seçilidir. Bu yüzden  eğer kendi .net uygulamanızda bir sql login ile bağlantı kurmak isterseniz, “Trusted mode is not allowed” benzeri bir hata alırsınız.   Ayrıca sharepoint uygulaması kurulum sırasında belli kimliklerle ayarlanmıştır. Eğer portal yöneticisi değilseniz veya sharepoint ayarları ile oynamak istemiyorsanız veya bu ayarları değiştirmenin nelere yol açabileceğini kestiremiyorsanız yukarıda bahsettiğimiz çözüm gibi bir çözüme ihtiyacınız olacaktır.



Şimdi sırası ile kendi lokal kullanıcımızı oluşturalım ve bu kullanıcıya IIS’de , SQL’de ve ilgili klasörde ne tür yetkilendirmeler yapacağımıza bakalım.

br />