{"id":414,"date":"2026-01-18T19:51:51","date_gmt":"2026-01-18T19:51:51","guid":{"rendered":"https:\/\/narhost.com\/blog\/?p=414"},"modified":"2026-09-11T14:51:19","modified_gmt":"2026-09-11T14:51:19","slug":"asp-ve-net-core-nasil-calisir","status":"publish","type":"post","link":"https:\/\/narhost.com\/blog\/asp-ve-net-core-nasil-calisir\/","title":{"rendered":"ASP ve .NET Core Nas\u0131l \u00c7al\u0131\u015f\u0131r, Farklar\u0131 Nelerdir?"},"content":{"rendered":"<div id=\"ai-ozet\" class=\"ai-box\">\n<p class=\"ai-box-title\">K\u0131saca \u00f6zet<\/p>\n<ul>\n<li>ASP ve NET Core nas\u0131l \u00e7al\u0131\u015f\u0131r sorusunun k\u0131sa cevab\u0131: gelen iste\u011fi sunucu taraf\u0131nda i\u015fleyip taray\u0131c\u0131ya haz\u0131r HTML ya da veri d\u00f6nd\u00fcren uygulama katmanlar\u0131d\u0131r.<\/li>\n<li>Klasik ASP.NET yaln\u0131zca Windows \u00fczerinde ve IIS i\u00e7inde \u00e7al\u0131\u015f\u0131r; .NET Core kendi s\u00fcreci i\u00e7inde \u00e7al\u0131\u015f\u0131r ve Linux ile Windows destekler.<\/li>\n<li>.NET Core uygulamalar\u0131 Kestrel adl\u0131 dahili sunucuyla a\u00e7\u0131l\u0131r, IIS ise \u00f6n\u00fcnde ters vekil sunucu olarak durur.<\/li>\n<li>Payla\u015f\u0131ml\u0131 Windows hostingte yay\u0131na alma i\u015flemi Plesk aray\u00fcz\u00fcnden yap\u0131l\u0131r, komut sat\u0131r\u0131na gerek kalmaz.<\/li>\n<li>Veritaban\u0131 taraf\u0131nda genelde MSSQL kullan\u0131l\u0131r; ba\u011flant\u0131 bilgisi yap\u0131land\u0131rma dosyas\u0131nda tutulur.<\/li>\n<li>En s\u0131k g\u00f6r\u00fclen 502.5 hatas\u0131, uygulama havuzunun yanl\u0131\u015f ayarlanmas\u0131ndan ya da eksik bar\u0131nd\u0131rma paketinden kaynaklan\u0131r.<\/li>\n<\/ul>\n<\/div>\n<p>Windows tabanl\u0131 bir proje yay\u0131na al\u0131naca\u011f\u0131 zaman iki kavram s\u00fcrekli kar\u015f\u0131m\u0131za \u00e7\u0131kar: klasik ASP.NET ve modern .NET Core. \u0130kisi ayn\u0131 aileden gelse de sunucuda \u00e7al\u0131\u015fma bi\u00e7imleri birbirinden ayr\u0131l\u0131r. ASP ve NET Core nas\u0131l \u00e7al\u0131\u015f\u0131r sorusunu netle\u015ftirmek, do\u011fru hosting paketini se\u00e7meyi ve hata ay\u0131klamay\u0131 kolayla\u015ft\u0131r\u0131r. Bu rehberde istek ak\u0131\u015f\u0131n\u0131, iki teknolojinin fark\u0131n\u0131 ve yay\u0131na alma ad\u0131mlar\u0131n\u0131 anlat\u0131yoruz.<\/p>\n<h2>Sunucuda bir istek nas\u0131l i\u015flenir?<\/h2>\n<p>Ziyaret\u00e7i adrese girdi\u011finde taray\u0131c\u0131 sunucuya bir istek g\u00f6nderir. Statik bir dosya isteniyorsa sunucu dosyay\u0131 do\u011frudan d\u00f6nd\u00fcr\u00fcr. Dinamik bir sayfa isteniyorsa devreye uygulama katman\u0131 girer: kod \u00e7al\u0131\u015f\u0131r, gerekirse veritaban\u0131na sorgu at\u0131l\u0131r, sonu\u00e7 HTML olarak \u00fcretilir ve taray\u0131c\u0131ya g\u00f6nderilir.<\/p>\n<p>Klasik ASP.NET bu i\u015fi web sunucusunun i\u00e7inde yapar. Uygulama, IIS s\u00fcreci taraf\u0131ndan bar\u0131nd\u0131r\u0131l\u0131r ve y\u00f6netilen kod IIS ard\u0131\u015f\u0131k d\u00fczenine ba\u011flan\u0131r. Bu y\u00fczden klasik projeler Windows d\u0131\u015f\u0131nda \u00e7al\u0131\u015fmaz.<\/p>\n<p>.NET Core farkl\u0131 bir yol izler. Uygulama kendi ba\u015f\u0131na \u00e7al\u0131\u015fabilen bir programd\u0131r ve i\u00e7inde Kestrel adl\u0131 hafif bir web sunucusu ta\u015f\u0131r. Yay\u0131nda Kestrel do\u011frudan internete a\u00e7\u0131lmaz; \u00f6n\u00fcne IIS ya da Nginx konur, istekler oraya d\u00fc\u015fer ve uygulamaya iletilir. Bu yap\u0131ya ters vekil sunucu denir.<\/p>\n<div class=\"highlight-box\">\n<p class=\"label\">Bilgi<\/p>\n<p>Bu ayr\u0131m paket se\u00e7imini do\u011frudan etkiler. Klasik bir projeniz varsa Windows tabanl\u0131 bir pakete ihtiyac\u0131n\u0131z olur. Linux taraf\u0131ndaki farklar\u0131 <a href=\"https:\/\/narhost.com\/blog\/linux-hosting-nedir\/\" title=\"Linux hosting nedir, Windows hostingten fark\u0131\">Linux hosting yaz\u0131m\u0131zda<\/a> ele ald\u0131k.<\/p>\n<\/div>\n<figure class=\"nh-sema\"><img loading=\"lazy\" src=\"https:\/\/narhost.com\/blog\/wp-content\/uploads\/2026\/09\/asp-ve-net-core-nasil-calisir-sema-narhost.webp\" alt=\"ASP ve net core nas\u0131l \u00e7al\u0131\u015f\u0131r \u015femas\u0131 \u2014 istek, ters vekil sunucu, uygulama ve veritaban\u0131 ad\u0131mlar\u0131\" width=\"1200\" height=\"500\" loading=\"lazy\" decoding=\"async\"><figcaption>ASP ve .NET Core nas\u0131l \u00e7al\u0131\u015f\u0131r sorusunun ak\u0131\u015f\u0131: istek gelir, vekil sunucu iletir, uygulama i\u015fler, veritaban\u0131 yan\u0131tlar.<\/figcaption><\/figure>\n<h2>Klasik ASP.NET ile .NET Core fark\u0131<\/h2>\n<table>\n<thead>\n<tr>\n<th>Ba\u015fl\u0131k<\/th>\n<th>Klasik ASP.NET<\/th>\n<th>.NET Core<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0130\u015fletim sistemi<\/td>\n<td>Yaln\u0131zca Windows<\/td>\n<td>Windows, Linux, macOS<\/td>\n<\/tr>\n<tr>\n<td>Bar\u0131nd\u0131rma<\/td>\n<td>IIS s\u00fcreci i\u00e7inde<\/td>\n<td>Kendi s\u00fcrecinde, \u00f6n\u00fcnde ters vekil<\/td>\n<\/tr>\n<tr>\n<td>Dahili sunucu<\/td>\n<td>Yok, IIS kullan\u0131l\u0131r<\/td>\n<td>Kestrel<\/td>\n<\/tr>\n<tr>\n<td>Uygulama havuzu CLR<\/td>\n<td>Belirli .NET s\u00fcr\u00fcm\u00fc<\/td>\n<td>No Managed Code<\/td>\n<\/tr>\n<tr>\n<td>Yap\u0131land\u0131rma<\/td>\n<td>web.config<\/td>\n<td>appsettings.json ve ortam de\u011fi\u015fkenleri<\/td>\n<\/tr>\n<tr>\n<td>Da\u011f\u0131t\u0131m<\/td>\n<td>Dosyalar\u0131 kopyalamak yeterli<\/td>\n<td>Yay\u0131n \u00e7\u0131kt\u0131s\u0131 \u00fcretilip kopyalan\u0131r<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>S\u00fcr\u00fcm takvimi de tercihi etkiler. Desteklenen s\u00fcr\u00fcmler ve destek biti\u015f tarihleri <a href=\"https:\/\/dotnet.microsoft.com\/en-us\/platform\/support\/policy\/dotnet-core\" title=\"Microsoft .NET resm\u00ee destek politikas\u0131\" target=\"_blank\" rel=\"noopener\">Microsoft destek politikas\u0131 sayfas\u0131nda<\/a> yay\u0131mlan\u0131r. Deste\u011fi biten bir s\u00fcr\u00fcmde kalmak g\u00fcvenlik g\u00fcncellemesi alamamak demektir.<\/p>\n<h2>Yay\u0131na alma ad\u0131mlar\u0131<\/h2>\n<p>Proje sunucuya ta\u015f\u0131n\u0131rken kaynak kodu de\u011fil, derlenmi\u015f yay\u0131n \u00e7\u0131kt\u0131s\u0131 kopyalan\u0131r. S\u0131ra genelde \u015f\u00f6yle i\u015fler.<\/p>\n<ul class=\"kontrol-listesi\">\n<li>Projeyi yay\u0131n (release) yap\u0131land\u0131rmas\u0131yla derleyip \u00e7\u0131kt\u0131 klas\u00f6r\u00fcn\u00fc al\u0131n.<\/li>\n<li>Dosyalar\u0131 sitenin k\u00f6k dizinine y\u00fckleyin; klas\u00f6r yap\u0131s\u0131n\u0131 bozmay\u0131n.<\/li>\n<li>Uygulama havuzunun .NET s\u00fcr\u00fcm\u00fcn\u00fc projeye g\u00f6re ayarlay\u0131n.<\/li>\n<li>Veritaban\u0131n\u0131 ta\u015f\u0131y\u0131n ve ba\u011flant\u0131 bilgisini yap\u0131land\u0131rma dosyas\u0131nda g\u00fcncelleyin.<\/li>\n<li>Ortam de\u011fi\u015fkenini \u00fcretim olarak i\u015faretleyin ki ayr\u0131nt\u0131l\u0131 hata ekran\u0131 ziyaret\u00e7iye g\u00f6r\u00fcnmesin.<\/li>\n<li>Yazma izni gereken klas\u00f6rleri belirleyip yaln\u0131zca onlara izin verin.<\/li>\n<li>HTTPS y\u00f6nlendirmesini a\u00e7\u0131n ve sertifikay\u0131 ba\u011flay\u0131n.<\/li>\n<\/ul>\n<p>Panel \u00fczerinden ayarlar\u0131n nereden yap\u0131ld\u0131\u011f\u0131n\u0131 <a href=\"https:\/\/narhost.com\/blog\/plesk-panel-nedir\/\" title=\"Plesk panel nedir, ne i\u015fe yarar\">Plesk panel yaz\u0131m\u0131zda<\/a>, sunucu konsolundaki kar\u015f\u0131l\u0131klar\u0131n\u0131 ise <a href=\"https:\/\/narhost.com\/blog\/iis-manager-nedir\/\" title=\"IIS Manager nedir, Windows sunucuda ne i\u015fe yarar\">IIS Manager yaz\u0131m\u0131zda<\/a> bulabilirsiniz.<\/p>\n<div class=\"warn-box\">\n<p class=\"label\">Dikkat<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda veritaban\u0131 \u015fifresi d\u00fcz metin durur. Bu dosyay\u0131 s\u00fcr\u00fcm kontrol\u00fcne g\u00f6ndermeyin ve yedeklerini herkese a\u00e7\u0131k bir klas\u00f6rde tutmay\u0131n. \u00dcretim ortam\u0131nda ayr\u0131nt\u0131l\u0131 hata ekran\u0131n\u0131 kapal\u0131 b\u0131rak\u0131n; a\u00e7\u0131k b\u0131rak\u0131lan hata ekran\u0131 ba\u011flant\u0131 bilgilerini s\u0131zd\u0131rabilir.<\/p>\n<\/div>\n<h2>S\u0131k kar\u015f\u0131la\u015f\u0131lan hatalar<\/h2>\n<p>Yay\u0131na alma sonras\u0131 \u00e7\u0131kan hatalar\u0131n b\u00fcy\u00fck b\u00f6l\u00fcm\u00fc kodla de\u011fil ortamla ilgilidir. 502.5 hatas\u0131 uygulaman\u0131n hi\u00e7 ba\u015flat\u0131lamad\u0131\u011f\u0131n\u0131 s\u00f6yler; genelde uygulama havuzunun CLR s\u00fcr\u00fcm\u00fc yanl\u0131\u015ft\u0131r ya da sunucuda bar\u0131nd\u0131rma paketi kurulu de\u011fildir.<\/p>\n<p>500.30 hatas\u0131 uygulaman\u0131n ba\u015flad\u0131\u011f\u0131n\u0131 ama a\u00e7\u0131l\u0131\u015f s\u0131ras\u0131nda \u00e7\u00f6kt\u00fc\u011f\u00fcn\u00fc g\u00f6sterir; \u00e7o\u011funlukla yap\u0131land\u0131rma dosyas\u0131ndaki bir de\u011fer eksiktir. 500.19 hatas\u0131 ise yap\u0131land\u0131rma dosyas\u0131n\u0131n okunamad\u0131\u011f\u0131n\u0131, ge\u00e7ersiz bir sat\u0131r ya da eksik bir mod\u00fcl bulundu\u011funu i\u015faret eder.<\/p>\n<p>Veritaban\u0131na ba\u011flan\u0131lam\u0131yorsa \u00f6nce ba\u011flant\u0131 metnindeki sunucu ad\u0131n\u0131, ard\u0131ndan kullan\u0131c\u0131 yetkilerini kontrol edin. Veritaban\u0131 kavramlar\u0131na giri\u015f i\u00e7in <a href=\"https:\/\/narhost.com\/blog\/mysql-avantajlari-nedir\/\" title=\"MySQL avantajlar\u0131 ve veritaban\u0131 se\u00e7imi\">veritaban\u0131 yaz\u0131m\u0131za<\/a> g\u00f6z atabilirsiniz.<\/p>\n<div class=\"senaryo-block\">\n<p class=\"label\">\u00d6rnek senaryo<\/p>\n<p>Bir ekip, yerelde sorunsuz \u00e7al\u0131\u015fan .NET Core panelini sunucuya ta\u015f\u0131d\u0131. Site 502.5 d\u00f6nd\u00fcr\u00fcyordu. Kod de\u011fi\u015fmedi\u011fi i\u00e7in sorun ortamdayd\u0131: sunucuda bar\u0131nd\u0131rma paketi kuruluydu ama uygulama havuzunun CLR s\u00fcr\u00fcm\u00fc eski bir de\u011ferde kalm\u0131\u015ft\u0131. Havuz &#8220;No Managed Code&#8221; yap\u0131ld\u0131ktan sonra panel ilk denemede a\u00e7\u0131ld\u0131.<\/p>\n<\/div>\n<h2>Hangi hosting paketi gerekir?<\/h2>\n<p>Klasik bir proje ya da MSSQL kullanan bir uygulama Windows tabanl\u0131 paket ister. Payla\u015f\u0131ml\u0131 bir Windows pakette Plesk aray\u00fcz\u00fc \u00fczerinden s\u00fcr\u00fcm se\u00e7imi, yay\u0131na alma ve sertifika i\u015flemleri yap\u0131labilir; bu \u00e7o\u011fu kurumsal site ve orta \u00f6l\u00e7ekli panel i\u00e7in yeterlidir.<\/p>\n<p>Uygulaman\u0131z arka planda s\u00fcrekli \u00e7al\u0131\u015fan servisler bar\u0131nd\u0131r\u0131yorsa, \u00f6zel bile\u015fen kurulumu gerekiyorsa ya da yo\u011fun trafik al\u0131yorsa sunucu taraf\u0131na ge\u00e7mek gerekir. Sanal sunucuda kurulum ve bak\u0131m sorumlulu\u011fu sizde olur, buna kar\u015f\u0131l\u0131k ortam \u00fczerinde tam kontrol elde edersiniz.<\/p>\n<div class=\"success-box\">\n<p class=\"label\">Sonu\u00e7<\/p>\n<p>ASP ve .NET Core nas\u0131l \u00e7al\u0131\u015f\u0131r sorusunun \u00f6zeti \u015fudur: klasik ASP.NET sunucunun i\u00e7inde, .NET Core ise kendi s\u00fcrecinde \u00e7al\u0131\u015f\u0131r ve \u00f6n\u00fcne bir vekil sunucu al\u0131r. Bu fark\u0131 bilirseniz hem do\u011fru paketi se\u00e7er hem de yay\u0131na alma hatalar\u0131n\u0131 dakikalar i\u00e7inde \u00e7\u00f6zersiniz.<\/p>\n<\/div>\n<div class=\"kb-faq\">\n<h2>S\u0131k\u00e7a sorulan sorular<\/h2>\n<h3>ASP ve NET Core nas\u0131l \u00e7al\u0131\u015f\u0131r, aralar\u0131ndaki temel fark nedir?<\/h3>\n<p>Klasik ASP.NET uygulamas\u0131 IIS s\u00fcreci i\u00e7inde bar\u0131nd\u0131r\u0131l\u0131r ve yaln\u0131zca Windows \u00fczerinde \u00e7al\u0131\u015f\u0131r. .NET Core uygulamas\u0131 ise kendi s\u00fcreci i\u00e7inde, Kestrel adl\u0131 dahili sunucuyla \u00e7al\u0131\u015f\u0131r; \u00f6n\u00fcne ters vekil sunucu konur ve Linux dahil farkl\u0131 sistemlerde \u00e7al\u0131\u015fabilir.<\/p>\n<h3>.NET Core projesi Linux hostingte \u00e7al\u0131\u015f\u0131r m\u0131?<\/h3>\n<p>Teknik olarak \u00e7al\u0131\u015f\u0131r, ancak payla\u015f\u0131ml\u0131 Linux paketleri genelde PHP i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r. Uygulaman\u0131n s\u00fcrekli \u00e7al\u0131\u015fan bir s\u00fcre\u00e7 olarak bar\u0131nd\u0131r\u0131lmas\u0131 gerekti\u011fi i\u00e7in pratikte Windows paketi ya da sanal sunucu tercih edilir.<\/p>\n<h3>Uygulama havuzunun CLR s\u00fcr\u00fcm\u00fc neden No Managed Code olmal\u0131?<\/h3>\n<p>\u00c7\u00fcnk\u00fc .NET Core uygulamas\u0131 kodunu sunucunun y\u00f6netilen \u00e7al\u0131\u015fma zaman\u0131nda de\u011fil kendi s\u00fcreci i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131r. Havuza bir CLR s\u00fcr\u00fcm\u00fc atan\u0131rsa sunucu uygulamay\u0131 yanl\u0131\u015f \u015fekilde bar\u0131nd\u0131rmaya \u00e7al\u0131\u015f\u0131r ve 502.5 hatas\u0131 \u00e7\u0131kar.<\/p>\n<h3>Yay\u0131na al\u0131rken kaynak kodunu mu y\u00fcklemeliyim?<\/h3>\n<p>Hay\u0131r. Yay\u0131n yap\u0131land\u0131rmas\u0131yla derlenmi\u015f \u00e7\u0131kt\u0131 klas\u00f6r\u00fc y\u00fcklenir. Kaynak kodunu sunucuya koymak hem gereksizdir hem de g\u00fcvenlik a\u00e7\u0131s\u0131ndan risklidir.<\/p>\n<h3>Veritaban\u0131 ba\u011flant\u0131 \u015fifresi nerede tutulur?<\/h3>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda ya da ortam de\u011fi\u015fkenlerinde tutulur. Ortam de\u011fi\u015fkeni kullanmak daha g\u00fcvenlidir, \u00e7\u00fcnk\u00fc de\u011fer dosyaya yaz\u0131lmaz ve yanl\u0131\u015fl\u0131kla payla\u015f\u0131lma ihtimali azal\u0131r.<\/p>\n<\/div>\n<div class=\"cta-box\">\n<p class=\"label\">Narhost&#8217;ta<\/p>\n<p>Windows hosting paketleri Plesk kontrol paneliyle gelir; ASP.NET, .NET Core ve MSSQL kullanan projeler i\u00e7in haz\u0131rd\u0131r. Mevcut sitenizin ta\u015f\u0131nmas\u0131n\u0131 teknik ekibimiz \u00fcstleniyor.<\/p>\n<p><a class=\"cta-btn\" href=\"https:\/\/narhost.com\/windows-hosting\" title=\"Narhost Windows hosting paketleri ve fiyatlar\u0131\">Windows hosting paketlerini incele<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>ASP ve .NET Core nas\u0131l \u00e7al\u0131\u015f\u0131r sorusunun cevab\u0131, klasik ASP.NET ile .NET Core aras\u0131ndaki bar\u0131nd\u0131rma fark\u0131 ve yay\u0131na alma s\u0131ras\u0131nda \u00e7\u0131kan hatalar\u0131n \u00e7\u00f6z\u00fcm\u00fc.<\/p>\n","protected":false},"author":1,"featured_media":2270,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-414","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hosting"],"_links":{"self":[{"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/posts\/414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/comments?post=414"}],"version-history":[{"count":2,"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/posts\/414\/revisions"}],"predecessor-version":[{"id":2269,"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/posts\/414\/revisions\/2269"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/media\/2270"}],"wp:attachment":[{"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/media?parent=414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/categories?post=414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/narhost.com\/blog\/wp-json\/wp\/v2\/tags?post=414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}