Plesk ASP.NET Ayarları (Windows Hosting)
Visual Studio’da sorunsuz çalışan bir uygulama sunucuda 500 hatası verdiğinde sorun çoğu zaman kodda değil, barındırma ayarlarındadır: yanlış .NET sürümü, uyumsuz pipeline modu ya da eksik bir web.config satırı. Plesk ASP.NET ayarları bu değerleri IIS’e dokunmadan panelden düzenlemenizi sağlar.
Bu rehberde LIONFIN Plesk hosting Windows paketlerinde .NET Framework ve ASP.NET Core sürümü seçmeyi, application pool ve ASP.NET Settings ekranını, web.config ile yapılan ayarları, MSSQL bağlantısını ve en sık görülen hataların çözümünü anlatıyoruz.
Windows hostingde ASP.NET: Framework mı, Core mu?
İki farklı çalışma zamanı vardır ve barındırma ayarları buna göre değişir:
| Özellik | ASP.NET (Framework 4.x) | ASP.NET Core (.NET 6/8) |
|---|---|---|
| Çalışma biçimi | IIS içinde, application pool ile | Kestrel + ASP.NET Core Module (in-process) |
| Plesk’te seçim | Hosting Settings → ASP.NET version | Sürüm sunucuda kurulu runtime ile belirlenir |
| Yapılandırma | web.config (system.web) | appsettings.json + kısa web.config |
| Yayınlama | Derlenmiş dosyalar + bin | dotnet publish çıktısı |
| Tipik hata | 500.19, sürüm uyuşmazlığı | 502.5, runtime eksik |
Hangi runtime’ların kurulu olduğunu Websites & Domains → Hosting Settings ekranındaki listeden görebilirsiniz. Yeni projeler için ASP.NET Core önerilir; eski WebForms ya da MVC 5 uygulamaları Framework 4.8 ile çalışmaya devam eder. Linux ve Windows arasında kararsızsanız Linux hosting mi Windows hosting mi yazısı karar kriterlerini sıralar; ASP.NET dışı bir proje için Windows hosting zorunlu değildir.
Hosting Settings: .NET sürümü ve application pool
Temel ayarlar alan adının Hosting Settings ekranındadır:
- Websites & Domains sekmesinde alan adının kartını açın ve Hosting Settings bağlantısına tıklayın.
- Web scripting and statistics bölümünde Microsoft ASP.NET support kutusunu işaretleyin ve ASP.NET version listesinden uygulamanızın derlendiği sürümü seçin (Framework için
4.x). - Gerekiyorsa Microsoft ASP support (klasik ASP) kutusunu da açın; modern projelerde kapalı kalması güvenlik için daha iyidir.
- OK ile kaydedin; IIS site yapılandırması otomatik güncellenir.
Her abonelik kendi dedicated application pool içinde çalışır; başka müşterinin uygulaması çökse de sizinki etkilenmez. Pool’un durumu ve Recycle düğmesi alan adı kartındaki Dedicated IIS Application Pool bağlantısındadır. Uygulama bellek sızdırıyorsa ya da yapılandırma değişikliği hemen etki etmiyorsa bu düğmeyle havuzu yeniden başlatın; site birkaç saniye içinde tekrar yanıt verir. Pipeline modu (Integrated/Classic) aynı ekranda seçilir; MVC ve Web API için Integrated gerekir.
Plesk ASP.NET ayarları ekranı
Framework uygulamalarında alan adı kartındaki ASP.NET Settings bağlantısı, web.config içine dokunmadan sık kullanılan değerleri düzenlemenizi sağlar:
- Globalization: Culture ve UI culture için
tr-TRseçerek tarih ve para biçimlerini Türkçeleştirin; Request/Response encodingutf-8kalsın. - Session: Session timeout (dakika) ve oturum modunu (InProc varsayılan) belirleyin; birden fazla pool kullanmıyorsanız değiştirmeyin.
- Error handling: Custom errors için RemoteOnly seçin; ziyaretçi hatanın ayrıntısını görmez, siz sunucuda görürsünüz.
- Compilation and debugging: canlı sitede Debug kapalı olmalıdır; açık kalırsa performans düşer ve hata ayrıntıları sızar.
- Script library: eski WebForms doğrulama betikleri için
aspnet_clientyolu.
Bu ekrandaki her değişiklik web.config dosyasına yazılır; dosyayı elle düzenleyenler için ekran yalnızca görsel bir arayüzdür. ASP.NET Core uygulamalarında bu ayarların çoğu appsettings.json ve Program.cs içinde yapılır, ekran büyük ölçüde etkisizdir.
web.config ile yapılan ayarlar
Belge kökündeki (httpdocs) web.config, Plesk ASP.NET ayarları ekranının arkasındaki asıl dosyadır; Plesk dosya yöneticisi ile düzenleyebilirsiniz. En çok gereken bölümler:
<configuration>
<connectionStrings>
<add name="Varsayilan"
connectionString="Server=MSSQL_SUNUCU;Database=db_siteniz;User Id=kullanici;Password=PAROLA;TrustServerCertificate=True" />
</connectionStrings>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="/hata" />
<httpRuntime targetFramework="4.8" maxRequestLength="51200" />
<globalization culture="tr-TR" uiCulture="tr-TR" />
</system.web>
<system.webServer>
<security>
<requestFiltering><requestLimits maxAllowedContentLength="52428800" /></requestFiltering>
</security>
</system.webServer>
</configuration>MSSQL sunucu adı, veritabanı adı ve kullanıcı bilgisi Databases ekranında oluşturduğunuz veritabanının kartında yazar; oluşturma adımları Plesk veritabanı oluşturma rehberindedir. Yükleme boyutu sınırı için hem maxRequestLength (KB) hem maxAllowedContentLength (bayt) değerini birlikte artırın; tek birini değiştirmek yeterli olmaz.
ASP.NET Core uygulaması yayınlama
Core uygulamaları IIS içinde ASP.NET Core Module aracılığıyla çalışır. Yayınlama adımları:
- Projeyi
dotnet publish -c Releaseile derleyin ya da Visual Studio’da Publish → Folder seçin; Deployment mode olarak Framework-dependent tercih edin, sunucudaki runtime kullanılır ve paket küçük kalır. - Çıktı klasörünün içeriğini
httpdocsköküne yükleyin;web.config,appsettings.jsonve.dlldosyaları kökte olmalıdır. - Hosting Settings ekranında ASP.NET desteğinin açık olduğundan emin olun; sürüm listesinde Core için ayrı bir seçenek görünmez, modül otomatik devreye girer.
- Uygulamanın yazması gereken klasörler (
wwwroot/uploads, günlükler) için dosya yöneticisinde application pool kimliğine Write izni verin. - Siteyi açın; ilk istekte uygulama ayağa kalkar, sonraki istekler hızlıdır. Boşta kalınca pool uyuyabilir; kritik uygulamalarda Always running için destek talebi açın.
Yayınlanan web.config içindeki hostingModel="inprocess" ayarı en iyi performansı verir. Ortam değişkenleri (ASPNETCORE_ENVIRONMENT) aynı dosyanın <environmentVariables> bölümüne yazılır. Dağıtımı otomatikleştirmek isterseniz Plesk Git deploy ile depodan doğrudan yayın alabilirsiniz.
Sık karşılaşılan hatalar
HTTP 500.19 – Internal Server Error
web.config okunamıyor: XML hatası, yinelenen bölüm ya da sunucuda kilitli bir ayar. Dosyayı doğrulayın; <modules> ve <handlers> bölümlerini kaldırıp deneyin.
HTTP 502.5 / 500.30 – ANCM hatası
ASP.NET Core runtime sürümü sunucuda yok ya da uygulama başlarken çöküyor. logs klasöründeki stdout günlüğünü açmak için web.config içinde stdoutLogEnabled="true" yapın ve hatayı okuyun.
“Could not load file or assembly”
bin klasöründe eksik ya da farklı sürümde DLL vardır; projeyi yeniden yayınlayıp tüm dosyaları yükleyin.
Veritabanına bağlanılamıyor
Bağlantı dizesindeki sunucu adı, kullanıcı ve parola Databases ekranındakiyle birebir aynı olmalıdır; uzak bağlantı açık değilse MSSQL sunucusuna yalnızca web sunucusundan erişilir.
Türkçe karakterler bozuk
Globalization ayarı ve veritabanı harmanlaması (Turkish_CI_AS) uyumlu olmalıdır; sayfalarda utf-8 meta etiketi bulunmalıdır.
Sık Sorulan Sorular
Aynı hesapta hem ASP.NET Framework hem ASP.NET Core uygulaması çalıştırabilir miyim?
Evet. Her alan adı ve subdomain kendi application pool’unda çalıştığı için biri Framework 4.8, diğeri .NET 8 üzerinde olabilir. Aynı belge kökünde ikisini karıştırmak ise mümkün değildir; ikinci uygulamayı ayrı bir subdomain ya da sanal dizin olarak tanımlayın.
Plesk üzerinden IIS Manager’a erişebilir miyim?
Paylaşımlı hostingde IIS Manager erişimi güvenlik nedeniyle verilmez; ayarların tamamı Hosting Settings, ASP.NET Settings ve web.config aracılığıyla yapılır. Bu üç kanal IIS’in uygulama düzeyindeki tüm ayarlarını kapsar. Sunucu düzeyinde değişiklik gerektiren istekler için destek talebi açabilir ya da VDS tercih edebilirsiniz.
ASP.NET uygulamam neden ilk açılışta yavaş?
Application pool belirli bir süre istek almazsa uyku moduna geçer ve ilk istekte uygulama yeniden derlenip ayağa kalkar; bu birkaç saniye sürebilir. Ziyaretçi trafiği düzenliyse sorun kendiliğinden azalır. Kritik uygulamalarda düzenli aralıklarla ana sayfayı çağıran bir zamanlanmış görev ya da Always running ayarı için destek talebi çözüm olur.
Hangi .NET sürümleri destekleniyor?
Windows paketlerimizde .NET Framework 4.x ile güncel ASP.NET Core LTS sürümleri kuruludur; tam liste Hosting Settings ekranında ve müşteri panelindeki paket ayrıntılarında görünür. Yeni bir sürüm yayınlandığında sunuculara eklenir; ihtiyacınız olan sürüm listede yoksa destek ekibine bildirmeniz yeterlidir.
Bu makale yardımcı oldu mu?
Geri bildiriminiz için teşekkürler!
kişi faydalı buldu