IIS’te ASP.NET / .NET Core Uygulaması Nasıl Yayınlanır (Publish)

Son gözden geçirme: Eylül 2026 · Windows Server 2022 ve IIS 10 resmi dokümanına göre

Hızlı çözüm

Net core projesini IIS’te yayınlama işlemi üç aşamada yapılır: projenizi dotnet publish ile derleyip yayına hazırlayın, çıktı dosyalarını sunucudaki IIS site klasörüne kopyalayın, IIS’te uygulama havuzunu No Managed Code olarak ayarlayıp siteyi başlatın.

  1. Projenizi dotnet publish -c Release ile derleyin.
  2. Çıktı klasörünü RDP veya dosya paylaşımıyla sunucuya kopyalayın.
  3. IIS’te yeni bir site/uygulama oluşturup fiziksel yolu bu klasöre gösterin.
  4. Uygulama havuzunu No Managed Code yapıp siteyi test edin.
Panel IIS Yöneticisi (IIS Manager)
Sistem Windows Server 2019 / 2022, IIS 10 (VDS/VPS)
Yetki Administrator
Narhost ürünü VDS Sunucu

Başlamadan önce

  • Sunucuda IIS kurulu olmalı; kurulu değilse önce IIS kurulum kartına bakın.
  • ASP.NET Core Hosting Bundle sunucuya kurulu olmalı; IIS’in .NET Core uygulamalarını çalıştırabilmesi için gerekir.
  • Projenizin kendi makinenizde derlenip test edilmiş olması gerekir.
  • Sunucuya RDP ile Administrator erişiminiz olmalı.
net core projesini iis'te yayınlama akış şeması — publish, Hosting Bundle kurulumu, dosya kopyalama ve uygulama havuzu adımları
IIS'te dört adımda tamamlanır: yayına hazırlama, Hosting Bundle kurulumu, dosya kopyalama ve uygulama havuzu ayarı.

Net core projesini iis’te yayınlama ne işe yarar

IIS varsayılan olarak statik dosyaları ve klasik ASP.NET uygulamalarını doğrudan çalıştırır; ASP.NET Core ve .NET Core uygulamaları ise kendi içlerinde çalışan bir Kestrel sunucusuyla ayakta durur, IIS önlerinde yalnızca ters vekil (reverse proxy) görevi görür. IIS’in isteği doğru yönlendirebilmesi için sunucuya ASP.NET Core Hosting Bundle kurulmalı ve uygulama havuzu No Managed Code olarak ayarlanmalıdır; aksi halde IIS projeyi klasik .NET uygulaması sanıp hata verir.

VDS/VPS’te işletim sistemi, IIS ve .NET Core çalışma zamanı sizin sorumluluğunuzdadır; Narhost altyapıyı ve ağı sağlar, yayınlama işlemini sunucunuzda siz yaparsınız. ASP.NET ve .NET Core’un kavramsal olarak nasıl çalıştığını merak ediyorsanız blogdaki ASP.NET ve .NET Core Nasıl Çalışır yazısına bakabilirsiniz; bu kart doğrudan yayınlama (publish) adımlarını anlatır.

Adım adım net core projesini iis’te yayınlama

  1. Projenizi yayına hazırlayın. Geliştirme makinenizde aşağıdaki komutu çalıştırıp yayın çıktısını oluşturun.
    dotnet publish -c Release -o ./yayin

    Beklenen sonuç: yayin klasöründe uygulamanın .dll dosyaları, web.config ve bağımlılıklar oluşur.

  2. Hosting Bundle’ı sunucuya kurun. Sunucuda kurulu değilse ASP.NET Core Hosting Bundle’ı indirip kurun ve IIS’i iisreset ile yeniden başlatın.

    Beklenen sonuç: iisreset komutu hata vermeden tamamlanır.

  3. Dosyaları sunucuya kopyalayın.yayin klasörünün içeriğini RDP panosu, dosya paylaşımı ya da ZIP ile sunucuda site için ayırdığınız klasöre taşıyın.

    Beklenen sonuç: hedef klasörde .dll dosyaları ve web.config görünür.

  4. IIS’te siteyi oluşturun ve uygulama havuzunu ayarlayın. IIS Yöneticisi’nde yeni bir site açıp fiziksel yolu bu klasöre gösterin; uygulama havuzunun .NET CLR Version‘ını No Managed Code yapın.

    Dikkat

    Uygulama havuzunu No Managed Code yapmazsanız IIS isteği Kestrel’e iletemez ve site 500 hatası verir.

    Beklenen sonuç: siteyi tarayıcıdan açtığınızda uygulamanın karşılama sayfası gelir; gelmezse web.config‘teki stdout log dosyasına bakın.

Microsoft’un resmi dokümanına göre Hosting Bundle, .NET çalışma zamanını, ASP.NET Core modülünü ve IIS ile ortak çalışabilmesi için gereken diğer bileşenleri tek pakette kurar; ayrı ayrı kurmaya gerek yoktur.

Microsoft’un yayınlama eğitimine göre uygulama havuzunun kimliğinin (identity) site klasörüne yazma ve okuma izni olduğundan da emin olunmalıdır; aksi halde log dosyaları oluşturulamaz.

Doğrulama

Sonuç

Sunucuda tarayıcıyla http://localhost ya da sitenin bağlı olduğu alan adını açın; uygulamanızın karşılama sayfasının hatasız geldiğini görmeniz beklenen sonuçtur. Dışarıdan da test etmek için alan adının sunucunuzun IP’sine yönlendirildiğinden emin olun.

Hâlâ çözülmediyse

  • Site 500.19 ya da 500.30 hatası veriyor. Uygulama havuzunun No Managed Code olarak ayarlandığını ve Hosting Bundle kurulumundan sonra IIS’in yeniden başlatıldığını kontrol edin.
  • Sayfa boş ya da “HTTP Error 502.5” veriyor.web.config‘teki stdout log’unu geçici olarak açıp hatanın tam metnini görün; genelde eksik bir bağımlılık ya da yanlış giriş noktasıdır.
  • Dışarıdan siteye erişilemiyor.Windows güvenlik duvarında 80 ve 443 portlarının açık olduğunu doğrulayın.
  • Statik dosyalar geliyor ama uygulama çalışmıyor. Genel IIS site yayınlama adımlarını IIS’te site yayınlama kartından karşılaştırarak site/uygulama yapılandırmasını gözden geçirin.

Narhost desteği

Talebe şunları ekleyin: sunucu adı ya da IP, aldığınız tam hata mesajı (varsa stdout log içeriği), .NET sürümünüz ve denediğiniz adımlar.

Destek talebi aç

Sıkça sorulan sorular

Sunucuda yüklü .NET Core sürümleri nasıl görülür?

Sunucuya RDP ile bağlanıp komut isteminde dotnet --list-runtimes yazın; kurulu tüm ASP.NET Core ve .NET çalışma zamanları sürümleriyle listelenir.

Uygulama havuzu neden No Managed Code olmalı?

.NET Core kendi çalışma zamanını taşır; IIS’in klasik .NET CLR’ı devreye sokmasına gerek yoktur, aksi halde IIS isteği yanlış işlemeye çalışıp hata verir.

Yayınladıktan sonra kod değişikliği yaptım, tekrar tüm adımları mı izlemeliyim?

Hayır; yalnızca dotnet publish çıktısını tekrar oluşturup aynı hedef klasöre kopyalamanız yeterlidir, site ve uygulama havuzu ayarları kalıcıdır.

Bu makale sorununuzu çözdü mü?

Çözemediniz mi?

Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.

Etiketler: dotnet-coreiiswindows-server

İlgili çözümler