Windows hosting, Microsoft Windows Server üzerinde IIS (Internet Information Services) web sunucusu, ASP.NET / ASP.NET Core, Microsoft SQL Server ve sıklıkla Plesk kontrol paneli ile sunulan paylaşımlı veya VPS düzeyinde barındırma hizmetidir. Linux hosting'in PHP/MySQL ekosistemiyle karşılaştırıldığında .NET ekosistemine bağlı uygulamalar, klasik ASP siteleri, Crystal Reports gibi Windows'a özel kütüphaneler kullanan kurumsal uygulamalar ve özellikle MSSQL bağımlılığı olan ERP/CRM benzeri sistemler için kaçınılmaz bir tercihtir.
Bu rehber; IIS yapılandırması, ASP.NET Core Hosting Bundle'ın doğru kurulumu, in-process / out-of-process barındırma modelleri, MSSQL connection string desenleri, Plesk panelden TLS yönetimi, application pool tuning, deploy stratejileri (Web Deploy, FTPS, GitHub Actions) ve Türkiye'deki Windows hosting fiyat aralıklarına kadar tüm pratik detayları kapsar. Her örnek gerçek üretimden alınmış komutlar, web.config / appsettings.json parçaları ve PowerShell snippet'leri ile desteklendi; hayali ürün önerisi veya sahte fiyat yok.
İlgili rehberler: Hosting Nedir? Türleri ve Fiyatları · Nginx vs Apache · Plesk Panel Yönetimi · MySQL vs PostgreSQL · Let's Encrypt ile Ücretsiz SSL · VPS Kiralama Rehberi
Windows Hosting Nedir, Linux Hosting'den Farkı Ne?
Hosting kelimesi tek başına teknik olarak tarafsızdır — bir dosya sistemine erişim, web sunucu süreci ve isteğe bağlı bir veritabanı sunar. Ancak işletim sistemi seçimi uygulamanın çalışabileceği teknolojileri belirler. Linux paylaşımlı hosting paketleri Apache veya LiteSpeed üzerinde PHP yorumlayıcı çalıştırır ve MySQL/MariaDB ile gelir. Windows hosting paketleri ise IIS web sunucusunda .aspx, .ashx, .cshtml dosyalarını çalıştıran.NET runtime'larını ve isteğe bağlı bir MSSQL örneğini sunar.
Pratik açıdan kritik fark: PHP siteleri her iki platformda da çalışır — birçok Windows hosting sağlayıcısı 5.6'dan 8.3'e kadar PHP sürümleri sunar. Ancak ASP.NET, ASP Classic, MSSQL, Crystal Reports, COM bileşenleri ve IIS modülleri sadece Windows'ta düzgün çalışır. Eğer kod tabanınızda web.config dosyası, System.Web.Mvc referansı veya SqlConnection kullanımı varsa Windows hosting bir tercih değil, zorunluluktur.
Hangi Tür Uygulamalar Windows Hosting Gerektirir
- Klasik ASP siteleri: Hâlâ üretimde olan eski intranet ve KOBİ sistemleri.
.aspuzantısını yorumlayan başka platform yok. - ASP.NET Web Forms (4.x): VB.NET veya C# ile yazılmış geleneksel postback tabanlı uygulamalar.
- ASP.NET MVC 5:
System.Webüzerine kurulu olduğundan tam Windows / IIS gerektirir; ASP.NET Core MVC ile karıştırılmamalıdır. - ASP.NET Core 6/8/9/10 (Windows tarafında): Linux'ta da çalışır ama IIS'in
app pool, Windows Auth ve in-process barındırma avantajları için Windows tercih edilebilir. - MSSQL bağımlılığı yüksek uygulamalar: Stored procedure, Service Broker, FILESTREAM gibi özelliklere yaslanan sistemler.
- Crystal Reports / SAP raporlama entegre eski uygulamalar.
- SharePoint, Exchange, BizTalk gibi Microsoft ekosistemi ürünleri.
Linux Hosting'in Tercih Edileceği Senaryolar
PHP tabanlı uygulamalar (WordPress, Laravel, Symfony, Magento, OpenCart), Node.js, Python (Django/Flask), Go, Ruby on Rails ve statik site jeneratörleri (Hugo, Jekyll, Astro) için Linux hosting hem daha ucuz hem ekosistem olarak daha doğal bir tercihtir. Detaylı karşılaştırma için Nginx vs Apache ve LSCache Rehberi yazılarımıza bakabilirsiniz.
IIS: Internet Information Services'a Hızlı Bakış
IIS Microsoft'un Windows Server ile birlikte ücretsiz gelen web sunucusudur. 2026 itibarıyla yaygın sürümler: Windows Server 2019 ile gelen IIS 10.0, Windows Server 2022 ile gelen IIS 10.0 (gelişmiş HTTP/3 desteğiyle) ve Windows Server 2025'in yeni sürümü. Tüm modern Windows hosting sağlayıcıları en az IIS 10 kullanır. IIS, Apache veya Nginx'teki gibi nginx.conf tek dosya yapılandırması yerine site bazlı web.config XML dosyaları ve sunucu genelindeki applicationHost.config ile çalışır.
IIS'in temel kavramları: Site (bir hostname / port bağlama), Application Pool (worker process'leri yöneten süreç havuzu), Virtual Directory ve Application (alt URL yolları), Binding (HTTP/HTTPS port + hostname). Application pool izolasyonu Linux'ta her PHP-FPM havuzu için ayrı kullanıcı çalıştırma alışkanlığına benzer; her site kendi pool'unda çalışırsa biri çökse de diğerini etkilemez.
web.config Yapısı
web.config Apache'nin .htaccess'ine benzer şekilde site dizinine düşer; ancak XML olduğu için sözdizimi katıdır — eksik tek bir kapanış etiketi tüm siteyi 500 hatasına düşürür. JSON / XML Formatlama Aracı üzerinden veya Visual Studio Code'un yerleşik linter'ıyla mutlaka doğrulayın.
ASP.NET Core Hosting Bundle: IIS Üzerinde.NET Çalıştırmak
ASP.NET Core (artık sadece .NET diye anılan, sürüm 5'ten itibaren cross-platform.NET) IIS'in modülü değildir; IIS'in arkasında reverse proxy olarak çalışan ayrı bir Kestrel sunucu süreci kullanır. Bu mimariyi mümkün kılan tek bileşen ASP.NET Core Hosting Bundle'dır. Sunucuya yüklemediğiniz sürece .NET 8 veya .NET 9 uygulamalarınız IIS üzerinde başlamaz.
Microsoft'un resmi dokümantasyonu (learn.microsoft.com/tr-tr/aspnet/core/host-and-deploy/iis/hosting-bundle) Hosting Bundle'ın üç bileşeni içerdiğini belirtir:.NET Runtime, ASP.NET Core Module (ANCM) ve ASP.NET Shared Framework. Yükleme sırası kritik — önce IIS sonra Hosting Bundle olmalı; ters sırada yüklerseniz iisreset sonrası modül kayıtlı görünmez ve onarım yüklemesi gerekir.
Hosting Bundle Kurulumu (PowerShell)
Sessiz kurulum parametreleri arasında OPT_NO_X86=1 32-bit runtime'ı atlatır (yalnızca 64-bit uygulama barındıracaksanız), OPT_NO_RUNTIME=1 kendi içine paketlenmiş (self-contained deployment) uygulamalar için runtime kurulumunu atlatır. OPT_NO_ANCM=1 ASP.NET Core Module'ünü atlatır — paylaşımlı bir Windows hosting kullanıyorsanız bu seçenek genellikle gerekmez, çünkü modül zaten sağlayıcı tarafından yüklü olur.
In-Process vs Out-of-Process Barındırma
ASP.NET Core uygulamaları IIS arkasında iki farklı modelle çalıştırılabilir. In-Process modelde Kestrel sunucusu IIS'in w3wp.exe sürecinin içinde çalışır — daha az ağ overhead'i, daha düşük gecikme, ancak app pool çökerse Kestrel da çöker. Out-of-Process modelde Kestrel ayrı bir dotnet.exe sürecinde çalışır ve IIS reverse proxy görevi görür..NET Core 3.0'dan itibaren in-process default'tur.
- In-Process avantajı: Tipik istek başına 5-10 mikrosaniye daha düşük gecikme; AWS / Azure benchmark'larında saniyede %20-30 daha fazla istek.
- Out-of-Process avantajı: Process izolasyonu — uygulama hatası IIS'i etkilemez. Aynı app pool'da birden fazla site barındıran sağlayıcılar için güvenli.
- In-Process kullanılamadığı durumlar: Aynı app pool içinde birden fazla ASP.NET Core uygulaması barındırmak istiyorsanız, her biri ayrı out-of-process modelde olmak zorunda.
- Seçim kuralı: Tek dedicated app pool'unuz varsa in-process, paylaşımlı / çok kiracılı pool'da out-of-process tercih edin.
Application Pool Yönetimi ve Tuning
Application pool IIS'teki en kritik ayarlardan biridir. Bir pool'a atanmış tüm siteler aynı w3wp.exe sürecinde çalışır; aynı CPU/RAM havuzunu paylaşır, aynı.NET CLR sürümünü kullanır ve aynı kullanıcı kimliğiyle erişim yapar. Yanlış yapılandırılmış bir app pool tüm Windows sunucusunu RAM tüketmesi veya zombie process üretmesi nedeniyle dakikalar içinde dize getirebilir.
Önemli ayrıntı: idleTimeout varsayılanı 20 dakikadır — düşük trafikli bir sitede ilk istek pool'u uyandırırken 5-10 saniyelik soğuk başlatma yaşatır. Sürekli ayakta tutulması gereken API ve admin paneller için bu değeri sıfır yapın. Ancak çok kiracılı paylaşımlı sunucularda bu ayar RAM tükettiği için sağlayıcı izin vermeyebilir.
Bellek ve CPU Limitleri
Periyodik restart (örn. günde bir kez) bellek sızıntılarına karşı sigorta görevi görür. Üretimdeki bir.NET 8 uygulamasının normal koşullarda 200-400 MB RAM kullanması beklenir; 1.5 GB üzerine çıkıyorsa ya yük çok yüksek ya da bir IDisposable nesne sızdırılıyor demektir. Node.js Performans yazımızdaki memory leak teşhis yöntemleri büyük ölçüde benzer mantıkla.NET için de geçerlidir; dotnet-counters ve dotnet-dump araçları temel teşhis kütüphanenizdir.
MSSQL Hosting: Microsoft SQL Server ile Çalışmak
MSSQL hosting (veya web hosting MSSQL) kavramı, Windows hosting paketlerinin neredeyse her zaman ücretsiz veya cüzi ek ücretle birlikte sunduğu Microsoft SQL Server veritabanı barındırma hizmetini ifade eder. 2026'da Türkiye'deki sağlayıcılar genellikle SQL Server 2019 veya SQL Server 2022 sürümlerinden birini sunar. Önemli bir detay: paylaşımlı paketlerde sunulan MSSQL genellikle Web Edition veya Workgroup / Express Edition'dır; tam Standard ya da Enterprise Edition için VPS veya dedicated paket gerekir.
SQL Server Edition'ları ve Sınırları
- Express Edition (ücretsiz): Veritabanı başına 10 GB sınırı, 1 GB RAM ve 1 CPU soketi (max 4 core). Dev/test ve küçük üretim için yeterli.
- Web Edition: Sadece web uygulamaları için lisanslanır. RAM ve CPU sınırı Standard'a yakın ama lisanslama düşük. Çoğu Windows hosting sağlayıcısının paylaşımlı paketinde sunduğu sürüm.
- Standard Edition: 128 GB RAM, 24 core. Tam BI, Always On Basic Availability Groups, geleneksel kurumsal kullanım.
- Enterprise Edition: Sınırsız RAM ve core, gerçek zamanlı analitik, in-memory OLTP, Always On AG.
- Developer Edition (ücretsiz): Enterprise'la özellik paritesi, sadece üretim dışı kullanım.
Paylaşımlı bir MSSQL hizmeti aldığınızda dikkat edilmesi gereken üç limit: veritabanı boyutu (paylaşımlı paketlerde 50 MB - 5 GB arası), eşzamanlı bağlantı sayısı (genellikle 10-100 arası), log dosyası boyutu (genellikle 25-100 MB). Bu sınırlardan biri aşıldığında The transaction log for database is full ya da Could not allocate space for object hataları alırsınız. Detaylı veritabanı tuning için SQL Sorgu Optimizasyonu ve PostgreSQL Performans Optimizasyonu yazılarımızdaki indeksleme prensipleri MSSQL için de geçerlidir.
Connection String Desenleri
Üç parametre canlıda en sık unutulan: Encrypt=True (TLS aktif eder, paylaşımlı sunucularda zorunlu), MultipleActiveResultSets=True (Entity Framework'te aynı bağlantıda paralel sorgu çalıştırır), Pooling=True + Max Pool Size (.NET varsayılanı 100 connection — yüksek trafikte 200-300 yapın). Connection string'i asla repo'ya commit'lemeyin; dotnet user-secrets veya Azure Key Vault, ya da en azından appsettings.Production.json + .gitignore kullanın.
Remote MSSQL Bağlantısı ve Firewall
Paylaşımlı Windows hosting'de MSSQL genellikle Plesk panelden tanımlanır ve uzaktan bağlantı (Management Studio'dan) için sağlayıcının açık IP listesine eklenmeniz gerekir. Bazı sağlayıcılar uzaktan bağlantıyı tamamen kapatır — yalnızca Plesk arayüzü içindeki phpMyAdmin benzeri bir araç (genellikle SQL Web Admin veya Adminer for MSSQL) ile yönetebilirsiniz. VPS veya dedicated kullanıyorsanız sqlservr.exe sürecinin TCP/1433 portunu Windows Firewall'da açmanız gerekir.
ASP.NET MVC Hosting: Klasik MVC 5 vs ASP.NET Core MVC
asp net mvc hosting sorgusu genellikle iki farklı şeyi kasteder ve bu ayrım kritiktir. ASP.NET MVC 5 (System.Web.Mvc namespace'i) klasik.NET Framework 4.x üzerine kurulu, sadece Windows / IIS'te çalışır. ASP.NET Core MVC (Microsoft.AspNetCore.Mvc namespace'i) cross-platform, hem Linux hem Windows'ta çalışır. İki kütüphanenin arayüzleri benzer ama altyapı tamamen farklı.
- MVC 5:
Global.asax,web.configüzerinde route tanımları,System.Web.Hosting. Yeni proje başlatmak için kesinlikle önerilmez ama mevcut KOBİ uygulamaları hâlâ MVC 5 üstünde. - ASP.NET Core MVC:
Program.cs,builder.Services.AddControllersWithViews(), dependency injection birinci sınıf vatandaş. Yeni projeler için tek mantıklı seçim. - Hosting gereksinimleri: MVC 5 için Windows + IIS +.NET Framework 4.7.2+ şart. ASP.NET Core MVC için Hosting Bundle + IIS yeterli (veya Linux'ta Kestrel + Nginx).
- Migration eforu: MVC 5 → ASP.NET Core MVC geçişi 'lift and shift' değildir; controller imzaları, model binding, filter mimarisi ciddi şekilde değişti.
.NET Core /.NET 5+ Hosting: Kestrel ve Çapraz Platform
net core hosting arayışı yapan geliştiricilerin çoğu aslında modern.NET (sürüm 5, 6, 7, 8, 9, 10) hakkında bilgi arıyor..NET Core ismi 2020'de bırakıldı; Microsoft o tarihten beri yalnızca .NET ismini kullanıyor..NET 8 ve.NET 9 LTS (Long Term Support) sürümleridir;.NET 8 desteği Kasım 2026'ya,.NET 9 desteği Mayıs 2026'ya kadar uzanır. Üretim için her zaman LTS sürüm tercih edin.
Windows hosting üzerinde.NET 8/9 uygulamanızı çalıştırmanın iki yolu var: framework-dependent deployment (FDD) — sunucuda Hosting Bundle'ın yüklü olduğunu varsayar, sadece uygulama DLL'leriniz deploy edilir, ~10-30 MB. Self-contained deployment (SCD) — runtime uygulamayla birlikte paketlenir, sunucuda ekstra kurulum gerektirmez ama 80-150 MB'a çıkar.
Plesk Panel ile Windows Hosting Yönetimi
Türkiye'deki neredeyse tüm Windows paylaşımlı hosting sağlayıcıları kontrol paneli olarak Plesk'i tercih eder. cPanel'in Windows tarafında resmi desteği yok; bu nedenle Plesk de facto standarttır. Plesk panelden eriştiğiniz başlıca özellikler: domain ekleme, alt domain ve park edilen domain yönetimi, FTP/FTPS hesap oluşturma, Plesk Email server entegrasyonu, MSSQL ve MySQL veritabanı yönetimi, SSL sertifikası kurma (Let's Encrypt entegre),.NET sürüm seçimi, IIS application pool kontrolü ve dosya yöneticisi.
.NET Sürüm Seçimi (Plesk Üzerinden)
Plesk arayüzünde Websites & Domains → ASP.NET Settings menüsünden site bazında.NET Framework sürümünü (2.0, 3.5, 4.x, 4.8) ve IIS Application Pool ayarlarını görebilirsiniz. ASP.NET Core sürümü ayrı bir menüden yönetilir (Plesk 18.0.51+ ile gelen ASP.NET Core extension). Eski ASP siteleri için Classic ASP seçeneği Apache & nginx Settings altında değil, IIS sekmesi altında bulunur.
Plesk paneli kullanıyorsanız hem Windows hem Linux hosting'leri tek arayüzden yönetebilirsiniz; bu nedenle çok platformlu hosting sağlayıcıları için Plesk vazgeçilmezdir. Daha kapsamlı Plesk anlatımı için Plesk Panel Yönetimi rehberimize göz atın.
SSL Sertifikası ve HTTPS: Plesk + IIS
Modern web için TLS şart. Windows hosting'de SSL sertifikası kurmanın üç yolu var: Plesk üzerinden Let's Encrypt (en kolay ve ücretsiz), IIS üzerinden manuel sertifika import (.pfx dosyasıyla, satın alınmış sertifikalar için) ve Win-acme veya Certify The Web gibi üçüncü taraf otomatik araçlar. Plesk'in Let's Encrypt extension'ı 90 günlük sertifikaları otomatik yeniler ve aynı zamanda www alt alan adı ile wildcard ekleme kolaylığı sunar.
Windows Server 2025 ile gelen yeni IIS, HSTS'i sistem düzeyinde destekler — site bazında Plesk veya appcmd üzerinden açabilirsiniz. Tarayıcı uyumluluk ve modern TLS yapılandırması için detaylı rehberimiz HTTPS ve TLS 1.3 yazısında. SSL sertifikanızı kurduktan sonra markaadi SSL Sertifika Kontrol aracıyla doğrulayabilirsiniz.
Deploy Stratejileri: FTP, Web Deploy, GitHub Actions
Windows hosting'e deploy üç yaygın yolla yapılır. FTPS en eski ve en yaygın yöntem; her sağlayıcı destekler ama sürekli el ile dosya transferi hata yapmaya çok açıktır. Web Deploy (msdeploy.exe) Microsoft'un resmi deploy aracı; Visual Studio entegrasyonu mükemmel, ancak sağlayıcının desteklemesi gerekir (genelde port 8172 üzerinden). CI/CD pipeline (GitHub Actions, Azure DevOps) kurumsal projeler için tek mantıklı seçim — manuel deploy'u tamamen ortadan kaldırır.
Detaylı CI/CD bilgisi için GitHub Actions CI/CD Rehberi yazımıza bakın. Web Deploy yöntemi tercih edilirse, deploy esnasında app_offline.htm dosyasını site köküne koyup IIS'in uygulamayı düzgün durdurmasını sağlamak veri kaybını önler — bu Microsoft'un resmi IIS Deploy dokümantasyonunda açıkça belirtilir.
Performans Tuning: IIS,.NET ve MSSQL
Windows hosting performansı üç katmanda optimize edilir: IIS seviyesinde HTTP/2 ve HTTP/3,.NET seviyesinde response compression ve output caching, MSSQL seviyesinde indeksleme ve query plan tuning. Tipik bir orta yoğunlukta üretim sitesi (saniyede 50-200 istek) doğru yapılandırılmış bir VPS Windows hosting üzerinde rahat çalışır; doğru yapılandırılmamış paylaşımlı hosting'de ise saniyede 5-10 istek bile timeout'a düşebilir.
IIS HTTP/2 ve HTTP/3 Aktivasyonu
Windows Server 2016+ HTTP/2'i, Windows Server 2022+ HTTP/3'ü destekler. HTTP/2 TLS bağlantıları için varsayılan olarak aktiftir; HTTP/3 etkinleştirmek için ek registry ayarı gerekir. Core Web Vitals yazımız HTTP/2/3 kazançlarını detaylı anlatır.
Output Cache ve Response Compression
MSSQL Query Tuning Temelleri
Güvenlik: IIS Sertleştirme ve MSSQL İzinleri
Windows hosting paketleri varsayılan olarak güvenli değildir; sağlayıcı ne kadar deneyimli olursa olsun belirli sertleştirme adımlarını siz uygulamak zorundasınız. OWASP Top 10 2026 yazımızdaki tehditlerin neredeyse tamamı IIS /.NET ortamlarında da geçerlidir.
- Server header'ı gizle:
Server: Microsoft-IIS/10.0başlığı saldırganlara hedef bilgisi verir. URL Rewrite + Outbound Rule ile kaldırın veyaremoveServerHeaderkullanın. - X-Powered-By kaldır:
web.config'dacustomHeadersiçinde<remove name="X-Powered-By" />. - Directory listing kapat:
directoryBrowse enabled="false". Default'ta kapalıdır ama kontrol edin. - HTTP yöntemlerini kısıtla: TRACE, OPTIONS, DELETE gibi gerekmeyen verb'leri request filtering ile engelleyin.
- Request size sınırı:
maxAllowedContentLength'i upload limitinizle uyumlu yapın (varsayılan 30 MB, çoğu form için 4 MB yeterli). - SQL injection koruması: Her zaman parameterized query veya stored procedure kullanın. Detay: SQL Injection Önleme.
- MSSQL için sa hesabını kapat:
ALTER LOGIN sa DISABLE. Mixed mode auth gerekiyorsa güçlü ikinci bir admin login oluşturun. - db_owner verme: Uygulama kullanıcısına yalnızca
db_datareader + db_datawriter + EXECUTEyeterlidir.
Yedekleme ve Felaket Kurtarma
Windows hosting'de iki ayrı şeyi yedeklemeniz gerekir: dosya sistemi (web içeriği, configs, logs) ve MSSQL veritabanı. Çoğu sağlayıcı haftalık yedek alır ve 7-30 gün saklar — bu yetersizdir. 3-2-1 yedekleme kuralı'na göre 3 kopya, 2 farklı medya, 1 off-site lokasyon olmalı.
Türkiye'de Windows Hosting Fiyat Aralıkları (2026)
Bu rakamlar yaklaşıktır, sağlayıcıya ve dönem kampanyalarına göre değişir; 2026 verisidir. Windows hosting genellikle Linux hosting'den %20-40 daha pahalıdır çünkü Microsoft Windows Server lisansı ve SQL Server Web/Standard lisansı ek maliyet doğurur. Türkiye'deki yerel sağlayıcıların (Turhost, IxirHost, Hosting.com.tr, IHS, Natro, LimonHost, Odeaweb, GuzelHosting gibi) Windows hosting paketleri benzer fiyat aralığında konumlanır.
- Giriş paketleri (1 site, 1-5 GB disk, 1 GB RAM, 1 MSSQL veritabanı): aylık ~70-120 TL.
- Orta paketler (3-5 site, sınırsız disk, 2 GB RAM, 5+ MSSQL veritabanı): aylık ~120-200 TL.
- Profesyonel paketler (10 site, 4-8 GB RAM, 2-4 vCPU, sınırsız MSSQL): aylık ~200-350 TL.
- Premium / Sınırsız (sınırsız site, 8 GB+ RAM, 4 vCPU): aylık ~300-500 TL.
- Windows VPS (kendi RDP'niz, tam yönetici yetkisi, kendi MSSQL Standard lisansınız): aylık ~500-2500 TL (RAM/CPU/disk'e göre).
- Dedicated Windows sunucu (fiziksel makine): aylık 5000-25000 TL+ (donanıma ve MSSQL Enterprise lisansına göre).
Çok dikkat edilmesi gereken bir kalem: SQL Server Standard / Enterprise lisansı. Bir VPS kiraladığınızda Windows Server lisansı genellikle dahildir ama MSSQL lisansı ayrı satılır. Standard Edition core başına yıllık ~7.000-9.000 USD lisans bedeline sahiptir; bu nedenle pek çok geliştirici Express Edition'da kalır veya yıllık SPLA (Service Provider Licensing Agreement) ile lisanslı VPS sağlayıcılarını tercih eder.
Windows Hosting vs VPS vs Cloud (Azure App Service)
Üretim ortamı için Windows hosting, VPS ve cloud arasındaki seçim hem teknik hem maliyet kararıdır. VPS Kiralama Rehberi yazımızda Linux odaklı ele alındı ama prensipler aynı.
- Paylaşımlı Windows hosting: Düşük trafikli (< 10K istek/gün) WordPress +.NET kurumsal site karmasi için yeterli. RDP yok, IIS direct erişim yok, sadece Plesk paneli üzerinden yönetim.
- Windows VPS: 100K-1M istek/gün arası, kendi IIS yapılandırmanızı yapmak istediğinizde. RDP erişimi, full admin haklar, performance counter'lara erişim. markaadi gibi sağlayıcılar Türkiye'de Windows VPS sunar.
- Dedicated Windows sunucu: 1M+ istek/gün, MSSQL Enterprise + Always On AG, çok kiracılı SaaS uygulamaları. CPU ve RAM tamamen size ait.
- Azure App Service for Windows: Microsoft'un yönetilen platformu. Otomatik ölçekleme, slot deployments, SSL otomatik. Pahalı ama operasyon maliyeti sıfır. Resmi referans: dotnet.microsoft.com/apps/aspnet/hosting.
- AWS EC2 Windows + RDS SQL Server: Çok bölgeli kurumsal mimari. Lambda +.NET 8 ile serverless seçeneği var. Maliyet hızla artar ama Azure'a alternatif olarak güçlü.
- Container yaklaşımı: Linux container'da.NET 8 çalıştırmak Windows container'a göre çok daha ucuz ve performanslıdır. Mevcut bir MVC 5 / Web Forms uygulaması haricinde tüm yeni projelerde Linux + Docker tercih edilir.
Docker ile Uygulama Deploy ve Kubernetes Temelleri yazılarımız.NET uygulamalarını container'da çalıştırmak için temel kaynaklar. Microsoft'un mcr.microsoft.com/dotnet/aspnet:9.0 resmi image'ı 100 MB'ın altındadır ve Linux + Alpine tabanlıdır.
Loglama ve İzleme: stdout, Event Log, ETW
Windows hosting'de log toplamanın üç katmanı vardır: ASP.NET Core uygulama logları (stdout veya Serilog), IIS access ve error logları, Windows Event Log. Hata ayıklama için her üçünü de okuyabilmeniz gerekir.
IIS access logları varsayılan olarak C:\inetpub\logs\LogFiles\W3SVC{N}\ dizininde W3C formatında saklanır; günlük dönüştürülür ve sıkıştırılmaz. ELK Stack Log Analizi yazımızda Filebeat → Logstash → Elasticsearch akışı detaylanır; Windows için winlogbeat da Event Log toplamak için kullanılabilir.
PHP, Node.js ve Diğer Diller Windows Hosting'de
Windows hosting yalnızca.NET için değildir. Çoğu modern Windows hosting paketinde PHP 7.x ve 8.x (FastCGI ile), Node.js (iisnode modülü ile veya HttpPlatformHandler ile reverse proxy), Python (HttpPlatformHandler) ve hatta Ruby on Rails çalıştırmak mümkündür. Ancak performans açısından bu dillerin doğal çalışma ortamı Linux'tur — Windows üzerinde aynı uygulama %15-30 daha yavaş çalışabilir.
PHP siteleri için LSCache, WordPress SEO eklentileri ve cPanel kavramları Windows tarafına doğrudan uygulanmaz; eşdeğeri Plesk üzerinde Cache Manager ve PHP-FPM benzeri FastCGI havuzudur. Windows üzerinde WordPress çalıştırmak teknik olarak mümkündür ama performans ve eklenti uyumu açısından önerilmez — WordPress zaten Linux + Apache/Nginx + MySQL'e gore optimize edilmiştir.
Sık Karşılaşılan Hatalar ve Hızlı Çözümler
- HTTP 500.30 - ASP.NET Core app failed to start: stdout log'unu açın (
stdoutLogEnabled="true"); genelde connection string hatası, eksik DLL veya.NET runtime sürüm uyumsuzluğu. - HTTP 500.19 - Internal Server Error from web.config:
web.config'da XML hatası veya eksik IIS modülü (URL Rewrite, ASP.NET Core Module).%windir%\system32\inetsrv\config\applicationHost.config'i kontrol edin. - HTTP 502.5 - Process failed to start: Hosting Bundle yok, yanlış sürüm veya app pool.NET sürümü yanlış (Core için
No Managed Codeseçilmeli). - HTTP 503 - Service Unavailable: App pool durmuş veya recycle döngüsünde. Event Viewer → Windows Logs → Application'a bakın.
- SQL connection timeout:
Connection Timeout=30arttırın, ancak çoğunlukla sorun firewall, yanlış instance adı veya MSSQL TCP/IP protokolünün kapalı olmasıdır (SQL Server Configuration Manager'dan açın). - The transaction log is full:
BACKUP LOGile log'u boşaltın veya recovery model'ı SIMPLE'a çevirin (PITR ihtiyacı yoksa). - Could not load file or assembly:
bin/klasöründe DLL eksik;publishçıktınızı doğru deploy edip etmediğinizi kontrol edin. - The page cannot be displayed because an internal server error has occurred:
customErrors mode="Off"yapın ve gerçek hatayı görün; sonra geri açın.
FAQ: Windows Hosting Hakkında Sık Sorulanlar
Windows hosting Linux hosting'den daha mı yavaş?
Aynı donanımda PHP/Node.js gibi Linux-doğal teknolojiler Windows'ta %15-30 daha yavaş çalışır. Ama.NET / ASP.NET uygulamaları Windows + IIS üzerinde Linux + Kestrel'e göre marjinal olarak daha hızlı çalışabilir (özellikle in-process barındırma kullanılırsa). Yani performans soyut bir kavram değil, çalıştırdığınız teknolojiye bağlı.
WordPress için Windows hosting kullanmalı mıyım?
Hayır. WordPress, MySQL, PHP ve Apache/Nginx ekosisteminin parçasıdır; Windows üzerinde çalışsa da plugin uyumluluğu ve performans daima Linux'un altında kalır. WordPress için LSCache ile birlikte Linux hosting tercih edin.
MSSQL Express ile yetinebilir miyim?
Veritabanı boyutunuz 10 GB altında, eşzamanlı kullanıcı sayısı 50'den az ve gelişmiş özelliklere (Always On, Service Broker, In-Memory OLTP) ihtiyacınız yoksa evet. Express tamamen ücretsizdir ve KOBİ uygulamalarının %80'i için yeterli.
ASP.NET Core uygulamasını Linux'a mı Windows'a mı deploy etmeliyim?
Yeni proje açıyorsanız ve Windows-spesifik bir bağımlılığınız yoksa (Active Directory entegrasyonu, COM+ bileşenleri, Windows Performance Counter), Linux + Docker + Kubernetes daha ucuz ve daha esnektir. Mevcut bir Windows uygulamasını taşıyorsanız Windows hosting'de kalmak deploy karmaşıklığını azaltır.
Plesk + Windows hosting yerine direkt RDP'li VPS alabilir miyim?
Evet ama yönetim maliyeti ciddi şekilde artar. Plesk ile dakikalar içinde yapacağınız bir SSL kurulumu, FTP hesabı oluşturma, DNS güncelleme — RDP üzerinden 30-60 dakika sürebilir. Sürekli birden fazla site / domain / e-posta yönetiyorsanız Plesk'in lisans ücreti kendini ödetir.
Windows hosting üzerinde WebSocket çalışır mı?
Evet. IIS 8.0+ WebSocket'i native destekler. SignalR veya raw WebSocket için WebSocket rolü Windows özelliklerinden açılmalı. WebSocket vs SSE yazımızda hangi senaryoda hangisini seçmeniz gerektiği detaylı işlenir.
Geçiş Senaryoları: Linux'tan Windows Hosting'e ve Tersi
Mevcut bir siteyi Linux'tan Windows'a (veya tersi) taşımak nadiren saf dosya kopyalama meselesidir. PHP siteleri için .htaccess kuralları web.config URL Rewrite kurallarına manuel çevrilmeli; $_SERVER['REQUEST_URI'] davranışı, dosya yolu separator'ı (/ vs \) ve realpath() sonuçları farklılaşabilir.
MSSQL'den MySQL'e (ve tersi) geçiş ise tamamen başka bir kategori — schema farklılıkları (NVARCHAR vs VARCHAR, UNIQUEIDENTIFIER vs BINARY(16), BIT vs TINYINT), index sözdizimi farklılıkları, stored procedure dilinin (T-SQL vs PL/SQL) yeniden yazılması. MySQL vs PostgreSQL yazımızda veri modeli farkları detaylanır; aynı prensipler MSSQL karşılaştırması için de geçerli.
İleri Konular: Windows Container, IIS Workers, ETW Tracing
Windows Container (özellikle Server Core tabanlı mcr.microsoft.com/windows/servercore/iis image'ı) klasik IIS uygulamalarınızı Docker'la paketlemenizi sağlar. Avantajı: Kubernetes (Windows node'lu) üzerinde çalıştırabilir, Helm chart'larıyla yönetebilir, blue/green deploy yapabilirsiniz. Dezavantajı: Image boyutu 5-10 GB, başlatma süresi 30-60 saniye (Linux container'larda 1-3 saniye). Yeni projeler için Linux container +.NET 9 daima üstündür.
ETW (Event Tracing for Windows).NET / IIS performans profilleme için en güçlü araçtır. PerfView, dotnet-trace ve Visual Studio Profiler ETW oturumları kullanır. CPU bottleneck, GC duraklamaları, lock contention gibi derin sorunları yalnızca ETW ile teşhis edebilirsiniz. OpenTelemetry Distributed Tracing yazımızda modern observability prensipleri tartışılır;.NET 9 OpenTelemetry'yi birinci sınıf destekler.
Hangi Sektörler Hâlâ Windows Hosting Kullanır?
Kurumsal yazılım ekosisteminin önemli bir kısmı Microsoft yığınına bağlıdır. 2026 itibarıyla Windows hosting'in en yoğun kullanıldığı alanlar:
- Bankacılık ve sigorta: Eski COBOL/AS400 bağlantılı uygulamaların Windows köprüleri, MSSQL'de tutulan kart işlem geçmişi.
- Devlet ve KİT'ler: e-Devlet entegrasyonu yapan resmi kurumlarda ASP.NET ağırlıklı uygulamalar.
- Üretim / ERP: SAP, Microsoft Dynamics, Logo Tiger gibi ERP ürünleri Windows altında çalışır.
- Sağlık: HBYS (Hastane Bilgi Yönetim Sistemi) yazılımlarının çoğu.NET + MSSQL üzerine kurulu.
- Eğitim: MEB e-okul, üniversite öğrenci işleri sistemleri.
- Mühendislik / CAD: AutoCAD, SolidWorks lisans sunucuları.
- İnşaat / Müteahhitlik: Yapı denetimi, hakediş takip yazılımları.
Bu sektörlerde tipik bir kurumsal müşteri en az 3-5 ASP.NET uygulamasını ortak bir Windows hosting / VPS'te barındırır. Geçiş zorluğu ve regülasyon nedeniyle bu uygulamalar 5-15 yıl içinde Linux'a taşınma niyeti olsa da kısa vadede Windows hosting talebi azalmıyor.
Hızlı Başlangıç Checklist'i
Yeni bir Windows hosting paketini ilk kurulumdan üretime geçirmek için izlenecek adımlar:
- 1. Plesk paneline giriş — sağlayıcı ekranını ve geçici parolayı değiştirin.
- 2. Domain'i ekle ve DNS A/AAAA kayıtlarını yönlendir. DNS Rehberi.
- 3. Let's Encrypt SSL'i aç — Plesk extension'ı tek tıkla yapar. Let's Encrypt Kurulumu.
- 4. HTTP → HTTPS redirect'i web.config'e ekle.
- 5. FTPS kullanıcısı oluştur ve plain FTP'yi kapat.
- 6. MSSQL veritabanı oluştur, sa olmayan bir kullanıcıya db_datareader + db_datawriter ver.
- 7. .NET sürümünü doğru seç (Plesk → ASP.NET Settings).
- 8. Application pool'u kontrol et: 64-bit, idleTimeout uygun.
- 9. web.config security headers'ı uygula (HSTS, CSP, X-Content-Type-Options).
- 10. İlk deploy — FTPS veya GitHub Actions ile.
- 11. Plesk Backup Manager'da haftalık off-site yedek'i yapılandır.
- 12. Uptime monitoring kur (UptimeRobot veya benzer).
Kaynaklar ve İleri Okuma
- Microsoft Learn — IIS'te ASP.NET Core barındırma
- Microsoft Learn — Hosting Bundle
- Microsoft IIS dokümantasyonu
- dotnet.microsoft.com — ASP.NET Hosting
- Microsoft SQL Server dokümantasyonu
- Plesk Administrator Guide
- ASP.NET Core Announcements GitHub
- iis.net — Topluluk kaynakları
İlgili Yazılar
- Hosting Nedir? Türleri ve Fiyatları
- Plesk Panel Yönetimi
- Let's Encrypt ile Ücretsiz SSL
- SQL Injection Önleme
- SQL Sorgu Optimizasyonu
- GitHub Actions CI/CD
- Docker ile Uygulama Deploy
- VPS Kiralama Rehberi
- Veritabanı Yedekleme Stratejileri
ASP.NET Core ve klasik MVC uygulamalarınızın Windows ortamında sorunsuz çalışması için kurulum, deploy, performans tuning ve 7/24 izleme hizmetlerimizle iletişime geçin