Sitenizi FTP İstemcisi Kullanarak Dağıtma (C#)
tarafından Scott Mitchell
bir ASP.NET uygulaması dağıtmanın en basit yolu, gerekli dosyaları geliştirme ortamından üretim ortamına el ile kopyalamaktır. Bu öğreticide, dosyaları masaüstünüzden web barındırma sağlayıcısına almak için FTP istemcisinin nasıl kullanılacağı gösterilmektedir.
Giriş
Önceki öğreticide birkaç ASP.NET sayfası, bir ana sayfa, özel bir temel Page
sınıf, bir dizi görüntü ve üç CSS stil sayfasından oluşan basit bir Book Review ASP.NET web uygulaması tanıtılmıştır. Artık bu uygulamayı bir web ana bilgisayar sağlayıcısına dağıtmaya hazırız. Bu noktada uygulamaya İnternet bağlantısı olan herkes erişebilir!
Hangi Dosyaların Dağıtılması Gerektiğini Belirleme öğreticisindeki tartışmalarımızdan, hangi dosyaların web barındırma sağlayıcısına kopyalanması gerektiğini biliyoruz. (Hangi dosyaların kopyalanacağı, uygulamanızın açıkça mı yoksa otomatik olarak mı derlendiğine bağlıdır.) Peki dosyaları geliştirme ortamından (masaüstümüz) üretim ortamına (web barındırma sağlayıcısı tarafından yönetilen web sunucusu) nasıl alacağız? F ile T ransfer P rotocol (FTP), ağ üzerinden bir makineden diğerine dosya kopyalamak için yaygın olarak kullanılan bir protokoldür. Bir diğer seçenek de FrontPage Sunucu Uzantıları (FPSE) seçeneğidir. Bu öğretici, geliştirme ortamından üretim ortamına gerekli dosyaları dağıtmak için tek başına FTP istemci yazılımını kullanmaya odaklanır.
Not
Visual Studio, FTP aracılığıyla web sitesi yayımlamaya yönelik araçlar içerir; bu araçlar ve FPSE kullanan araçlara göz atmak için sonraki öğreticide ele alınmıştır.
FTP kullanarak dosyaları kopyalamak için geliştirme ortamında bir FTP istemcisine ihtiyacımız vardır. FTP istemcisi, yüklü olduğu bilgisayardan FTP sunucusu çalıştıran bir bilgisayara dosya kopyalamak için tasarlanmış bir uygulamadır. (Web barındırma sağlayıcınız en çok olduğu gibi FTP aracılığıyla dosya aktarımlarını destekliyorsa, web sunucularında çalışan bir FTP sunucusu vardır.) Bir dizi FTP istemci uygulaması kullanılabilir. Web tarayıcınız FTP istemcisi olarak iki katına bile gelebilir. En sevdiğim FTP istemcisi ve bu öğretici için kullanacağım ftp istemcisi, Windows, Linux ve Mac'ler için kullanılabilen ücretsiz, açık kaynak bir FTP istemcisi olan FileZilla'dır. Ancak herhangi bir FTP istemcisi çalışacaktır, bu nedenle en rahat olduğunuz istemciyi kullanmaktan çekinmeyin.
Takip ediyorsanız, bu öğreticiyi veya sonraki öğreticileri tamamlamadan önce bir web barındırma sağlayıcısıyla hesap oluşturmanız gerekir. Önceki öğreticide belirtildiği gibi, çok çeşitli fiyatlara, özelliklere ve hizmet kalitesine sahip web barındırma sağlayıcısı şirketlerinden oluşan bir gaggle vardır. Bu öğretici serisi için, web barındırma sağlayıcım olarak Discount ASP.NET kullanacağım, ancak sitenizin geliştirileceği ASP.NET sürümü desteklediği sürece herhangi bir web barındırma sağlayıcısıyla birlikte takip edebilirsiniz. (Bu öğreticiler ASP.NET 3.5 kullanılarak oluşturulmuştur.) Ayrıca, bu öğreticide FTP kullanarak dosyaları web barındırma sağlayıcısına kopyalayacağımızdan ve gelecekte web barındırma sağlayıcınızın web sunucularına FTP erişimini desteklemesi zorunludur. Hemen hemen tüm web barındırma sağlayıcıları bu özelliği sunar, ancak kaydolmadan önce bir kez daha denetlemeniz gerekir.
Kitap İnceleme Web Uygulaması Projesini Dağıtma
Book Review web uygulamasının iki sürümü olduğunu hatırlayın: biri Web Uygulaması Projesi modeli (BookReviewsWAP) ve diğeri Web Sitesi Projesi modeli (BookReviewsWSP) kullanılarak uygulanır. Proje türü, sitenin otomatik olarak mı yoksa açıkça mı derlendiğini etkiler ve bu derleme modeli hangi dosyaların dağıtılması gerektiğini belirler. Sonuç olarak BookReviewsWAP ve BookReviewsWSP projelerini BookReviewsWAP ile başlayarak ayrı ayrı dağıtmayı inceleyeceğiz. Henüz yapmadıysanız bu iki ASP.NET uygulamasını indirmek için biraz zaman ayırın.
Klasöre gidip dosyaya BookReviewsWAP
çift tıklayarak BookReviewsWAP projesini BookReviewsWAP.sln
başlatın. Projeyi dağıtmadan önce, kaynak kodda yapılan değişikliklerin derlenmiş derlemeye dahil olduğundan emin olmak için derlemek önemlidir. Projeyi derlemek için Oluştur menüsüne gidin ve Build BookReviewsWAP menü seçeneğini belirleyin. Bu, projedeki kaynak kodunu klasörüne yerleştirilen tek bir derlemede BookReviewsWAP.dll
Bin
derler.
Artık gerekli dosyaları dağıtmaya hazırız! FTP istemcinizi başlatın ve web barındırma sağlayıcınızda web sunucusuna bağlanın. (Bir web barındırma şirketine kaydolduğunda, FTP sunucusuna nasıl bağlanacağınız hakkında size e-posta ile bilgi gönderilir; bu, FTP sunucusunun adresinin yanı sıra kullanıcı adı ve parolayı da içerir.)
Aşağıdaki dosyaları masaüstünüzden web barındırma sağlayıcınızdaki kök web sitesi klasörüne kopyalayın. Web ana bilgisayar sağlayıcısında web sunucusuna FTP girdiğinizde büyük olasılıkla kök web sitesi dizinindesinizdir. Ancak, bazı web barındırma sağlayıcılarının web sitesi dosyalarınız için kök klasör olarak hizmet veren veya wwwroot
adlı www
bir alt klasörü vardır. Son olarak, dosyaları FTPing sırasında üretim ortamında ilgili klasör yapısını oluşturmanız gerekebilir: Bin
klasör, Fiction
klasör, Images
klasör vb.
~/Default.aspx
~/About.aspx
~/Site.master
~/Web.config
~/Web.sitemap
- Klasörün tüm içeriği
Styles
- Klasörün (ve alt klasörünün
Images
,BookCovers
) tam içeriği ~/Fiction/Default.aspx
~/Fiction/Blaze.aspx
~/Tech/Default.aspx
~/Tech/CYOW.aspx
~/Tech/TYASP35.aspx
~/Bin/BookReviewsWAP.dll
Şekil 1'de, gerekli dosyalar kopyalandıktan sonra FileZilla gösterilmektedir. FileZilla, dosyaları soldaki yerel bilgisayarda, dosyaları ise sağda uzak bilgisayarda görüntüler. Şekil 1'de gösterildiği gibi, gibi About.aspx.cs
ASP.NET kaynak kodu dosyaları yerel bilgisayardadır (geliştirme ortamı) ancak kod dosyalarının açık derleme kullanılırken dağıtılması gerekmediğinden web ana bilgisayar sağlayıcısına (üretim ortamı) kopyalanmaz.
Not
Kaynak kod dosyalarının yoksayıldıkları için üretim sunucusunda bulunmasında bir zarar yoktur. ASP.NET, kaynak kod dosyaları üretim sunucusunda bulunsa bile web sitenizin ziyaretçileri tarafından erişilememesi için http isteklerinin varsayılan olarak kaynak kod dosyalarına erişimini yasaklar. (Yani, bir kullanıcı ziyaret http://www.yoursite.com/Default.aspx.cs
etmeye çalışırsa, bu tür dosyaların .cs
yasak olduğunu açıklayan bir hata sayfası alır.)
Şekil 1: Gerekli Dosyaları Masaüstünüzden Web Ana Bilgisayar Sağlayıcısındaki Web Sunucusuna Kopyalamak için FTP İstemcisi Kullanma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Sitenizi dağıttığınızda siteyi test etmek biraz zaman alır. Bir etki alanı adı satın aldıysanız ve DNS ayarlarını düzgün yapılandırdıysanız, etki alanı adınızı girerek sitenizi ziyaret edebilirsiniz. Alternatif olarak, web barındırma sağlayıcınız size sitenizin url'sini sağlamış olmalıdır ve bu url accountname gibi görünür. webhostprovider.com veya webhostprovider.com/accountname. Örneğin, İndirim ASP.NET hesabımın URL'si: http://httpruntime.web703.discountasp.net
.
Şekil 2'de dağıtılan Kitap İncelemeleri sitesi gösterilmektedir. Bunu İndirim ASP'de görüntülediğime dikkat edin. KONUMUNDAKI NET sunucuları http://httpruntime.web703.discountasp.net
. Bu noktada İnternet bağlantısı olan herkes web sitemi görüntüleyebilir! Beklediğimiz gibi, site geliştirme ortamında test ederken olduğu gibi görünür ve davranır.
Not
Uygulamanızı görüntülerken bir hata alırsanız, doğru dosya kümesini dağıttığınızdan emin olmak biraz zaman alır. Ardından, hata iletisini kontrol edin ve sorunla ilgili herhangi bir ipucu gösterilip ortaya çıkarmadığını görün. Bundan sonra web barındırma şirketinizin yardım masasına dönebilir veya sorunuzu ASP.NET Forumları'nda uygun foruma gönderebilirsiniz.
Şekil 2: Kitap İncelemeleri Sitesine İnternet Bağlantısı Olan Herkes Erişebilir (Tam boyutlu resmi görüntülemek için tıklayın)
Kitap İnceleme Web Sitesi Projesini Dağıtma
BookReviewsWSP Web Sitesi Projesi gibi otomatik derleme kullanan bir ASP.NET uygulaması dağıtırken, klasörde derlenmiş derleme Bin
yoktur. Sonuç olarak, web uygulamasının kaynak kodu dosyalarının üretim ortamına dağıtılması gerekir. Şimdi bu süreci inceleyelim.
Web Uygulaması Projesinde olduğu gibi, dağıtmadan önce uygulamayı derlemek akıllıca olacaktır. Web Sitesi Projesi derleme oluşturmaz, ancak sayfadaki derleme zamanı hatalarını denetler. Sitenizin bir ziyaretçisi tarafından sizin için keşfedilmesi yerine bu hataları şimdi bulmak daha iyi!
Projeyi başarıyla oluşturduktan sonra FTP istemcinizi kullanarak aşağıdaki dosyaları web barındırma sağlayıcınızdaki kök web sitesi klasörüne kopyalayın. Üretim ortamında ilgili klasör yapısını oluşturmanız gerekebilir.
Not
BookReviewsWAP projesini zaten dağıttıysanız ancak yine de BookReviewsWSP projesini dağıtmayı denemek istiyorsanız, önce Web sunucusunda BookReviewsWAP dağıtılırken karşıya yüklenen tüm dosyaları silin ve ardından BookReviewsWSP dosyalarını dağıtın.
~/Default.aspx
~/Default.aspx.cs
~/About.aspx
~/About.aspx.cs
~/Site.master
~/Site.master.cs
~/Web.config
~/Web.sitemap
- Klasörün tüm içeriği
Styles
- Klasörün (ve alt klasörünün
Images
,BookCovers
) tam içeriği ~/App_Code/BasePage.cs
~/Fiction/Default.aspx
~/Fiction/Default.aspx.cs
~/Fiction/Blaze.aspx
~/Fiction/Blaze.aspx.cs
~/Tech/Default.aspx
~/Tech/Default.aspx.cs
~/Tech/CYOW.aspx
~/Tech/CYOW.aspx.cs
~/Tech/TYASP35.aspx
~/Tech/TYASP35.aspx.cs
Şekil 3'de, gerekli dosyalar kopyalandıktan sonra FileZilla gösterilmektedir. Gördüğünüz gibi, kod dosyalarının otomatik derleme kullanılırken dağıtılması gerektiğinden, gibi About.aspx.cs
ASP.NET kaynak kodu dosyaları hem yerel bilgisayarda (geliştirme ortamı) hem de web ana bilgisayar sağlayıcısında (üretim ortamı) bulunur.
Şekil 3: Gerekli Dosyaları Masaüstünüzden Web Ana Bilgisayar Sağlayıcısındaki Web Sunucusuna Kopyalamak için FTP İstemcisi Kullanma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Kullanıcı deneyimi, uygulamanın derleme modelinden etkilenmez. Web sitesi Web Uygulaması Projesi modeli veya Web Sitesi Projesi modeli kullanılarak oluşturulmuş olsa da, aynı ASP.NET sayfaları erişilebilir ve aynı şekilde görünür ve davranır.
Üretimde Web Uygulamasını Güncelleştirme
Web uygulaması geliştirme ve dağıtma tek seferlik bir işlem değildir. Örneğin, Kitap İncelemesi web sitesini oluştururken çeşitli sayfaları oluşturdum ve kişisel bilgisayarıma (geliştirme ortamı) eşlik eden kodu yazdım. Belirli bir kararlı duruma ulaştıktan sonra, başkalarının siteyi ziyaret edebilmesi ve incelemelerimi okuyabilmesi için uygulamamı dağıttım. Ancak dağıtım, bu sitedeki geliştirmemin sonunu işaretlemez. Daha fazla kitap incelemesi ekleyebilir veya ziyaretçilerimin kitapları derecelendirmesine veya kendi yorumlarını bırakmasına izin verme gibi yeni özellikler uygulayabilirim. Bu tür geliştirmeler geliştirme ortamında geliştirilecek ve tamamlandığında dağıtılması gerekebilecekti. Bu nedenle geliştirme ve dağıtım döngüseldir. Bir uygulama geliştirip dağıtacaksınız. Site canlı ve üretim aşamasındayken yeni özellikler eklenir ve hatalar zaman içinde düzeltilir ve bu da uygulamanın yeniden dağıtılmasına neden olur. Ve bu şekilde devam etti.
Beklediğiniz gibi, bir web uygulamasını yeniden dağıtırken yalnızca yeni ve değiştirilmiş dosyaları kopyalamanız gerekir. Değişmemiş sayfaları veya sunucu veya istemci tarafı destek dosyalarını yeniden dağıtmanıza gerek yoktur (ancak bunun yapılmasında bir sakınca yoktur).
Not
Açık derlemeyi kullanırken dikkat etmeniz gereken bir şey, projeye yeni bir ASP.NET sayfası eklediğinizde veya kodla ilgili değişiklikler yaptığınızda, klasördeki Bin
derlemeyi güncelleştiren projenizi yeniden oluşturmanız gerektiğidir. Sonuç olarak, üretimde bir web uygulamasını güncelleştirirken (diğer yeni ve güncelleştirilmiş içerikle birlikte) bu güncelleştirilmiş derlemeyi üretime kopyalamanız gerekir.
Ayrıca dizindeki Web.config
veya dosyalarında Bin
yapılan tüm değişikliklerin web sitesinin Uygulama Havuzu'nun durdurulduğunu ve yeniden başlatıldığını da anlayın. Oturum durumunuz modu (varsayılan) kullanılarak InProc
depolanıyorsa, bu anahtar dosyaları değiştirildiğinde sitenizin ziyaretçileri oturum durumlarını kaybeder. Bu tuzaktan kaçınmak için veya SQLServer
modlarını kullanarak oturumu depolamayı StateServer
göz önünde bulundurun. Bu konu hakkında daha fazla bilgi için Oturum Durumu Modları konusunu okuyun.
Son olarak, bir uygulamanın yeniden dağıtılması, üretim ortamına kopyalanması gereken dosyaların sayısına ve boyutuna bağlı olarak birkaç saniye ile birkaç dakika arasında sürebilir. Bu süre boyunca sitenizi ziyaret eden kullanıcılar hata veya garip davranışla karşılaşabilir. Uygulamanızın kök dizinine, sitenin bakım için kapalı olduğunu (veya başka bir şeyi) açıklayan adlı App_Offline.htm
bir sayfa ekleyerek uygulamanızın tamamını "kapatabilirsiniz". App_Offline.htm
Dosya mevcut olduğunda, ASP.NET çalışma zamanı tüm gelen istekleri bu sayfaya yönlendirir.
Özet
Bir web uygulamasının dağıtılması için gerekli dosyaların geliştirme ortamından üretim ortamına kopyalanması gerekir. Dosyaların ağ üzerinden aktarılmasının en yaygın aracı Dosya Aktarım Protokolü'dür (FTP) ve çoğu web barındırma sağlayıcısı web sunucularına FTP erişimini destekler. Bu öğreticide, gerekli dosyaları web sunucusuna dağıtmak için FTP istemcisinin nasıl kullanılacağını gördük. Dağıtıldıktan sonra web sitesi İnternet bağlantısı olan herkes tarafından ziyaret edilebilir!
Mutlu Programlama!
Daha Fazla Bilgi
Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: