Narhost

ASP ve .NET Core Nasıl Çalışır, Farkları Nelerdir?

ASP ve .NET Core Nasıl Çalışır, Farkları Nelerdir — Narhost Hosting rehberi kapak görseli

İçindekiler

Kısaca özet

  • ASP ve NET Core nasıl çalışır sorusunun kısa cevabı: gelen isteği sunucu tarafında işleyip tarayıcıya hazır HTML ya da veri döndüren uygulama katmanlarıdır.
  • Klasik ASP.NET yalnızca Windows üzerinde ve IIS içinde çalışır; .NET Core kendi süreci içinde çalışır ve Linux ile Windows destekler.
  • .NET Core uygulamaları Kestrel adlı dahili sunucuyla açılır, IIS ise önünde ters vekil sunucu olarak durur.
  • Paylaşımlı Windows hostingte yayına alma işlemi Plesk arayüzünden yapılır, komut satırına gerek kalmaz.
  • Veritabanı tarafında genelde MSSQL kullanılır; bağlantı bilgisi yapılandırma dosyasında tutulur.
  • En sık görülen 502.5 hatası, uygulama havuzunun yanlış ayarlanmasından ya da eksik barındırma paketinden kaynaklanır.

Windows tabanlı bir proje yayına alınacağı zaman iki kavram sürekli karşımıza çıkar: klasik ASP.NET ve modern .NET Core. İkisi aynı aileden gelse de sunucuda çalışma biçimleri birbirinden ayrılır. ASP ve NET Core nasıl çalışır sorusunu netleştirmek, doğru hosting paketini seçmeyi ve hata ayıklamayı kolaylaştırır. Bu rehberde istek akışını, iki teknolojinin farkını ve yayına alma adımlarını anlatıyoruz.

Sunucuda bir istek nasıl işlenir?

Ziyaretçi adrese girdiğinde tarayıcı sunucuya bir istek gönderir. Statik bir dosya isteniyorsa sunucu dosyayı doğrudan döndürür. Dinamik bir sayfa isteniyorsa devreye uygulama katmanı girer: kod çalışır, gerekirse veritabanına sorgu atılır, sonuç HTML olarak üretilir ve tarayıcıya gönderilir.

Klasik ASP.NET bu işi web sunucusunun içinde yapar. Uygulama, IIS süreci tarafından barındırılır ve yönetilen kod IIS ardışık düzenine bağlanır. Bu yüzden klasik projeler Windows dışında çalışmaz.

.NET Core farklı bir yol izler. Uygulama kendi başına çalışabilen bir programdır ve içinde Kestrel adlı hafif bir web sunucusu taşır. Yayında Kestrel doğrudan internete açılmaz; önüne IIS ya da Nginx konur, istekler oraya düşer ve uygulamaya iletilir. Bu yapıya ters vekil sunucu denir.

Bilgi

Bu ayrım paket seçimini doğrudan etkiler. Klasik bir projeniz varsa Windows tabanlı bir pakete ihtiyacınız olur. Linux tarafındaki farkları Linux hosting yazımızda ele aldık.

ASP ve net core nasıl çalışır şeması — istek, ters vekil sunucu, uygulama ve veritabanı adımları
ASP ve .NET Core nasıl çalışır sorusunun akışı: istek gelir, vekil sunucu iletir, uygulama işler, veritabanı yanıtlar.

Klasik ASP.NET ile .NET Core farkı

Başlık Klasik ASP.NET .NET Core
İşletim sistemi Yalnızca Windows Windows, Linux, macOS
Barındırma IIS süreci içinde Kendi sürecinde, önünde ters vekil
Dahili sunucu Yok, IIS kullanılır Kestrel
Uygulama havuzu CLR Belirli .NET sürümü No Managed Code
Yapılandırma web.config appsettings.json ve ortam değişkenleri
Dağıtım Dosyaları kopyalamak yeterli Yayın çıktısı üretilip kopyalanır

Sürüm takvimi de tercihi etkiler. Desteklenen sürümler ve destek bitiş tarihleri Microsoft destek politikası sayfasında yayımlanır. Desteği biten bir sürümde kalmak güvenlik güncellemesi alamamak demektir.

Yayına alma adımları

Proje sunucuya taşınırken kaynak kodu değil, derlenmiş yayın çıktısı kopyalanır. Sıra genelde şöyle işler.

  • Projeyi yayın (release) yapılandırmasıyla derleyip çıktı klasörünü alın.
  • Dosyaları sitenin kök dizinine yükleyin; klasör yapısını bozmayın.
  • Uygulama havuzunun .NET sürümünü projeye göre ayarlayın.
  • Veritabanını taşıyın ve bağlantı bilgisini yapılandırma dosyasında güncelleyin.
  • Ortam değişkenini üretim olarak işaretleyin ki ayrıntılı hata ekranı ziyaretçiye görünmesin.
  • Yazma izni gereken klasörleri belirleyip yalnızca onlara izin verin.
  • HTTPS yönlendirmesini açın ve sertifikayı bağlayın.

Panel üzerinden ayarların nereden yapıldığını Plesk panel yazımızda, sunucu konsolundaki karşılıklarını ise IIS Manager yazımızda bulabilirsiniz.

Dikkat

Yapılandırma dosyasında veritabanı şifresi düz metin durur. Bu dosyayı sürüm kontrolüne göndermeyin ve yedeklerini herkese açık bir klasörde tutmayın. Üretim ortamında ayrıntılı hata ekranını kapalı bırakın; açık bırakılan hata ekranı bağlantı bilgilerini sızdırabilir.

Sık karşılaşılan hatalar

Yayına alma sonrası çıkan hataların büyük bölümü kodla değil ortamla ilgilidir. 502.5 hatası uygulamanın hiç başlatılamadığını söyler; genelde uygulama havuzunun CLR sürümü yanlıştır ya da sunucuda barındırma paketi kurulu değildir.

500.30 hatası uygulamanın başladığını ama açılış sırasında çöktüğünü gösterir; çoğunlukla yapılandırma dosyasındaki bir değer eksiktir. 500.19 hatası ise yapılandırma dosyasının okunamadığını, geçersiz bir satır ya da eksik bir modül bulunduğunu işaret eder.

Veritabanına bağlanılamıyorsa önce bağlantı metnindeki sunucu adını, ardından kullanıcı yetkilerini kontrol edin. Veritabanı kavramlarına giriş için veritabanı yazımıza göz atabilirsiniz.

Örnek senaryo

Bir ekip, yerelde sorunsuz çalışan .NET Core panelini sunucuya taşıdı. Site 502.5 döndürüyordu. Kod değişmediği için sorun ortamdaydı: sunucuda barındırma paketi kuruluydu ama uygulama havuzunun CLR sürümü eski bir değerde kalmıştı. Havuz “No Managed Code” yapıldıktan sonra panel ilk denemede açıldı.

Hangi hosting paketi gerekir?

Klasik bir proje ya da MSSQL kullanan bir uygulama Windows tabanlı paket ister. Paylaşımlı bir Windows pakette Plesk arayüzü üzerinden sürüm seçimi, yayına alma ve sertifika işlemleri yapılabilir; bu çoğu kurumsal site ve orta ölçekli panel için yeterlidir.

Uygulamanız arka planda sürekli çalışan servisler barındırıyorsa, özel bileşen kurulumu gerekiyorsa ya da yoğun trafik alıyorsa sunucu tarafına geçmek gerekir. Sanal sunucuda kurulum ve bakım sorumluluğu sizde olur, buna karşılık ortam üzerinde tam kontrol elde edersiniz.

Sonuç

ASP ve .NET Core nasıl çalışır sorusunun özeti şudur: klasik ASP.NET sunucunun içinde, .NET Core ise kendi sürecinde çalışır ve önüne bir vekil sunucu alır. Bu farkı bilirseniz hem doğru paketi seçer hem de yayına alma hatalarını dakikalar içinde çözersiniz.

Sıkça sorulan sorular

ASP ve NET Core nasıl çalışır, aralarındaki temel fark nedir?

Klasik ASP.NET uygulaması IIS süreci içinde barındırılır ve yalnızca Windows üzerinde çalışır. .NET Core uygulaması ise kendi süreci içinde, Kestrel adlı dahili sunucuyla çalışır; önüne ters vekil sunucu konur ve Linux dahil farklı sistemlerde çalışabilir.

.NET Core projesi Linux hostingte çalışır mı?

Teknik olarak çalışır, ancak paylaşımlı Linux paketleri genelde PHP için yapılandırılmıştır. Uygulamanın sürekli çalışan bir süreç olarak barındırılması gerektiği için pratikte Windows paketi ya da sanal sunucu tercih edilir.

Uygulama havuzunun CLR sürümü neden No Managed Code olmalı?

Çünkü .NET Core uygulaması kodunu sunucunun yönetilen çalışma zamanında değil kendi süreci içinde çalıştırır. Havuza bir CLR sürümü atanırsa sunucu uygulamayı yanlış şekilde barındırmaya çalışır ve 502.5 hatası çıkar.

Yayına alırken kaynak kodunu mu yüklemeliyim?

Hayır. Yayın yapılandırmasıyla derlenmiş çıktı klasörü yüklenir. Kaynak kodunu sunucuya koymak hem gereksizdir hem de güvenlik açısından risklidir.

Veritabanı bağlantı şifresi nerede tutulur?

Yapılandırma dosyasında ya da ortam değişkenlerinde tutulur. Ortam değişkeni kullanmak daha güvenlidir, çünkü değer dosyaya yazılmaz ve yanlışlıkla paylaşılma ihtimali azalır.

Narhost’ta

Windows hosting paketleri Plesk kontrol paneliyle gelir; ASP.NET, .NET Core ve MSSQL kullanan projeler için hazırdır. Mevcut sitenizin taşınmasını teknik ekibimiz üstleniyor.

Windows hosting paketlerini incele

Bu konuyla ilgili Narhost hizmetleri

Yazıda anlatılan ihtiyaca doğrudan karşılık gelen paketler.

Alışveriş deneyiminizi iyileştirmek için yasal düzenlemelere uygun çerezler (cookies) kullanıyoruz. Detaylı bilgiye Gizlilik ve Çerez Politikası sayfamızdan erişebilirsiniz.