BT Ekibi

"Size özel BT çözümleri"

Windows Server 2012 R2 tarih formatının uygulamalar için “d.M.yyyy” olması

Windows Server 2012 öncesi işletim sistemlerini Server 2012 versiyonuna migration sırasında başınıza gelmesi olası bir sorundur.  Eğer uygulamalarınız içerisinde tarih/saat formatında değişimler yapıyorsanız (ilk 4 karakteri say araya nokta koy gibi) Server 2012 sizler için bir kabus olacaktır.

Her ne kadar Regional kısmından zaman ayarlarını değiştirebiliyor olsanız bile uygulamalar için bu ayar çalışmayacaktır. Ne kadar uğraşırsanız uğraşın, değişmediğini gördükçe daha da Microsoft’a kızacaksınız.

Bunun için bir örnek;

Server 2012 öncesi işletim sistemlerinde yani IIS7.5 için aşağıdaki gibi çalışan bir kod;

Default Time : 11.07.2016 13:43:33

Local Time : 11.07.2016  13:43:33

Short Date : 11.07.2016

Culture : tr-TR

Server 2012 sonrasında bu şekle dönüşecek;

Default Time : 11.7.2016 13:43:33

Local Time : 11.7.2016  13:43:33

Short Date : 11.7.2016

Culture : tr-TR

Dikkat ederseniz MM kodunuz birden M şekline dönüştü. Bir çözüm var diye düşünüp hemen Regional kısmından MM dönüştürebilirsiniz.

2016_08_01_19_28_48_Customize_Format

Ancak bazı basit kodlarda işe yarasada, IIS uygulaması tarafından yürütülen bu işlemler çalışmayacaktır. Peki neden? Çünkü arayüzden yapılan değişiklikler, mevcut logon olan profil ayarlarına işler yani Current User. IIS ise kendine özel accountlar üzerinden çalışır; Network Service, IUSR , Local Service,..

Burada yapılması gereken IIS hangi kullanıcıyı bu işlemde devreye aldıysa onun Registry ayarları üzerinde SID numarasını bulup ilgili dizini değiştirmektir. Ne yalan söyliyim ben ilgili SID bulamadım bu sebeple tüm SID kayıtlarındaki ayarları aşağıdaki gibi güncelledim. Sonuçta tüm profillere uygulamış olmak herhangi bir soruna neden olmadı aksine sorunumu çözdü.

2016_08_01_19_38_53_Windows_Server_2012_IIS_8.0_uygulamalarında_tarih_formatının_d.M.yyyy_olarak

İlgili dizinler ; HKEY_USERS\S-XXXX\Control Panel\International\sShortDate ve sLongDate

Bu dizinde bir çok SID görebilirsiniz, bazılarını aşağıdaki ProfileList\S-1-xxxx\ProfileImagePath üzerinden kontrol edip, gereksizlerle uğraşmanıza gerek kalmayabilir. Örneğin bende hh gibi lokal bir kullanıcı için aynı işlemleri yapmam gerekmiyor.

2016_08_01_19_36_53_Registry_Editor

Güzel yanı sunucuyu restart etmeniz gerekmiyor, sadece IIS restart etmeniz yeterli olacaktır. Sorunun düzeldiğini göreceksiniz.

Loading

Paylaştıkça çoğalır...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir