Exchange ve .NET Framework desteği
Geçen hafta birkaç Exchange 2013 CU15 sunucusunu Exchange 2013 CU18'e yükseltmek zorunda kaldım. Tipik bir senaryoda, daha yeni bir Toplu Güncellemeye yükseltme, birkaç sürümü atlasanız bile çok önemli değildir, ancak bu senaryoda büyük olasılıkla aşağıdaki hata mesajıyla karşılaşacaksınız:
Önkoşul Analizi sırasında hata mesajıyla başarısız oluyor
“Bu bilgisayar .NET Framework 4.6.2 gerektirir (https://support.microsoft.com/kb/3151802). Daha fazla bilgi için şu adresi ziyaret edin: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.MinimumFrameworkNotInstalled.aspx
Exchange Server kurulum işlemi tamamlanmadı. Daha fazla ayrıntıyı (SystemDrive):\ExchangeSetupLogs klasöründe bulunan ExchangeSetup.log dosyasında bulabilirsiniz. ”
Exchange Server 2013 CU18, kurulum için .NET Framework 4.6.2'yi gerektirir ve bu sunucularda yüklü olmadığı açıktır.
.NET Framework'ün yüklü sürümünü nasıl belirlersiniz? Ne yazık ki (yine bu kelime ☹) bu Denetim Masası'nda görünmüyor ve bunun için kayıt defterini kontrol etmeniz gerekiyor.
HKLM\SOFTWARE\Microsoft\NET Framework setup\NDP\Full konumuna gidin ve DWORD değerini kontrol edin.
Sunucumda değer 379893'tü, bu da .NET Framework 4.5.2'nin yüklü olduğu anlamına geliyor.
Aşağıda çeşitli .NET Framework sürümleri için DWORD değerlerinin bir listesi bulunmaktadır:
- 378389 - .NET Çerçevesi 4.5
- 378675 - Windows 2012 R2'de .NET Framework 4.5.1
- 379893 - .NET Çerçevesi 4.5.2
- 393297 - .NET Çerçevesi 4.6
- 394271 - .NET Çerçevesi 4.6.1
- 394806 - .NET Çerçevesi 4.6.2
- 460805 - .NET Çerçevesi 4.7
- 461310 - .NET Çerçevesi 4.7.1
Not. Tam alt anahtar mevcut değilse, sunucunuzda .NET Framework 4.5 veya üzeri yüklü değildir.
Bu bilgiyi PowerShell kullanarak da almak mümkündür:
Get-ChildItem "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" | Get-ItemPropertyPeki Exchange Server'ın hangi sürümü ile .NET Framework'ün hangi sürümü desteklenmektedir? Bunun Exchange sunucusu Desteklenebilirlik Matrisi olduğunu görebilirsiniz:
Açıkçası .NET Framework versiyonları ve Exchange sunucu versiyonları zor bir durum. Bu bir Microsoft sorunudur, ancak Exchange uygulaması tıpkı Windows sunucusunu kullandığı gibi yalnızca .NET Framework'ü kullanıyor ve bu nedenle .NET geliştirme ekibinin veya Windows geliştirme ekibinin desteğine güveniyor. .NET sürümlerinin hızla piyasaya sürülmesiyle bu durum giderek daha can sıkıcı hale geliyor.
Ancak senaryomuzda Exchange 2013 CU15 sunucuları geçen yıl CU12'den yükseltildi ve hâlâ .NET Framework 4.5.2 sürümünü kullanıyordu. Benim avantajım, Exchange 2013 CU15'in .NET Framework 4.6.2'yi de desteklemesiydi, dolayısıyla yükseltme yolum kolaydı.
- .NET Framework 4.6.2'yi Exchange 2013 CU15'e yükleyin.
- Exchange 2013 CU18'e yükseltin.
- Herkes mutlu.
Aynı hafta başka bir müşteri bana ulaştı ve kendisi hâlâ Exchange 2013 CU12 kullanıyordu ve Exchange 2013 CU18'e yükseltme yapmak istiyordu ve bu durum daha da sinir bozucu olmaya başladı.
CU12'den (veya daha eski bir sürümden) yükseltme yaparken aşağıdaki adımlar gereklidir:
- Exchange 2013 12 PB'den 15 PB'ye yükseltme
- .NET Framework 4.6.2'yi CU15 sunucularına yükleyin
- Exchange 2013 15 PB'den 18 PB'ye yükseltme
- Herkes olur (Exchange yöneticileri hariç)
Şu anda (Aralık 2017) .NET Framework 4.7.1 de mevcuttur, ancak bu, Exchange sunucusunun herhangi bir sürümü tarafından desteklenmemektedir. Büyük olasılıkla Exchange Server 2013 CU19 ve Exchange Server 2016 CU8 tarafından desteklenecektir. Kullanılabilir olduğunda bu blog yazısını güncelleyeceğim.
Daha fazla bilgiyi aşağıdaki Microsoft sitelerinde bulabilirsiniz:
- Exchange 2016 sistem gereksinimleri - https://technet.microsoft.com/en-us/library/aa996719(v=exchg.160).aspx
- Exchange 2013 sistem gereksinimleri - https://technet.microsoft.com/en-us/library/aa996719(v=exchg.150).aspx
- .NET Framework 4.7 ve Exchange Sunucusu - https://blogs.technet.microsoft.com/exchange/2017/06/13/net-framework-4-7-and-exchange-server/
- Nasıl Yapılır: Hangi .NET Framework Sürümlerinin Yüklendiğini Belirleme - https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-thing-versions-are-installed