Eskiden projeler yayınlanırken dosyalar site dizinine kopyalanıp yapıştırılır ya da FTP üzerinden site dizinine yüklenirdi, ancak şimdi sürekli entegrasyon, otomatik işletme ve bakım ile otomatik yayıncılığın ortaya çıkmasıyla birlikte, yayıncılık projeleri de her geçen gün değişiyor.
Bu makale, VS 2019 aracılığıyla uzaktan bir IIS sitesine nasıl yayın yapılacağını açıklamaktadır.
Uzak Sunucu Sistemi: Windows Server 2019 64-bit
Sunucu yapılandırması
1. IIS ekleyin, .NET framework'ü kurun (çıkarıldı)
2. Web Deploy'u indirin ve kur
Web Deploy, web projelerini yerel ve uzaktan aşağıdaki adreste dağıtmak için kullanılabilir:Bağlantı girişi görünür.
Kurulum sırasında"Tamam"Kurulumdan sonra, aşağıdaki şekilde gösterildiği gibi hizmette "Web Yönetim Hizmeti" hizmetini göreceksiniz:
Eğer kurulu değilse, VS uzaktan yayınlarken aşağıdaki hatayı alır:
--------------------------- Microsoft Visual Studio --------------------------- Uzak bilgisayara bağlanamadı ("xx"). Web Deploy'un uzak makineye yüklendiğinden ve gerekli sürecin ("Web Yönetim Hizmeti") başlatıldığından emin olun. Daha fazla bilgi için şu adres:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Uzak sunuculara bağlanamıyor --------------------------- Emin misiniz ---------------------------
3. "IIS Yönetim Scriptleri ve Araçları"nı Yükleyin
Web Server (IIS) > Sunucu Rollerini Seç > Yönetici Araçlar bölümüne gidin, ardından IIS Yönetici Scripts and Tools rolünü seçin, Sonraki'ye tıklayın ve rolü yükleyin.
4. IIS, uzaktan bağlantıları mümkün kılın
IIS'deki yönetim servisini bulun ve aşağıdaki görselde gösterildiği gibi uzak bağlantıları etkinleştirin:
(Not:Güvenlik duvarı ve güvenlik grubunda 8172 gelen portunu açın)
5. Yeni bir IIS sitesi oluşturun
Aşağıdaki şekilde gösterildiği gibi test1 adında yeni bir site oluşturun:
6. IIS, yönetici kullanıcılar ekler
Aşağıdaki görselde gösterildiği gibi bir IIS Manager kullanıcısı ekleyin:
Aynı zamanda, test1 sitesinde, aşağıdaki şekilde gösterildiği gibi yetkilendirme ekleyin:
Yetkilendirme eklemezseniz, uzaktan yayınladığınızda aşağıdaki hata bildirilecektir:
--------------------------- Microsoft Visual Studio --------------------------- Web yönetim hizmetini kullanarak uzak bir bilgisayara ("xxx") bağlandınız ancak yetkilendirmediniz. Doğru kullanıcı adı ve şifreyi kullandığınızdan, bağlı olduğunuz sitenin zaten var olduğundan ve kimlik bilgilerini temsil eden kullanıcının siteye erişimi olduğundan emin olun. Daha fazla bilgi için şu adres:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Uzak sunucu bir hata döndürüyor: (401) Yetkisiz. --------------------------- Emin misiniz --------------------------- MVC projesinin ASP.NET Yayını
İlk olarak, VS 2019 kullanarak WebAutomatedDeployment adlı yeni bir .NET 4.6.2 asp.net mvc projesi oluşturun,
İki yeni kütüphane oluşturun ve web sitesi programı aynı anda bu iki kütüphaneyi referans verir. (Simülasyon resmi projeye daha yakın olduğu için 2 kütüphane oluşturun ve referans verin)
Projeye aşağıda gösterildiği gibi başlamayı deneyin:
Projeye sağ tıklayın, Yayınla, Web Sunucusu (IIS)-> Web Dağıtımı seçeneğini seçin ve sunucu bilgilerini aşağıdaki şekilde doldurun:
Bağlantıyı doğrulayın ve test geçti, aşağıdaki görselde gösterildiği gibi:
Yayınlamaya çalıştığımda hata şöyleydi:
Web dağıtım görevi başarısız oldu. ((2020/10/9 11:34:38) Uzak bilgisayarda hata işleme talebi. )
(2020/10/9 11:34:38) Uzak bilgisayarda hata işleme talebi. Sunucu isteği işlemekte zorlanıyor. Detaylar için sunucu yöneticinizle iletişime geçin. WebAutomatedDeployment 0 Aşağıdaki şekilde gösterildiği gibi Sunucu Olay Görüntüleyicisi üzerinden belirli hataları görebilirsiniz:
User: itsvse İstemci IP: xxx
Content-Type: application/msdeploy
Version: 9.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 9.0.3802.0
MSDeploy.Method: Sync
MSDeploy.RequestId: def8d9f7-1a72-4b19-8b75-919f8c6a9604
MSDeploy.RequestCulture: zh-CN
MSDeploy.RequestUICulture: zh-CN
ServerVersion: 9.0.1973.0
Skip: objectName="^configProtectedData$"
Provider: auto, Path: İstemciye yayılan bir iz dağıtım ajanı istisnası gerçekleşti. İstek ID'si "def8d9f7-1a72-4b19-8b75-919f8c6a9604", talep zaman damgası: "2020/10/9 11:51:29". Hata detayları:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 System.Security.AccessControl.Win32.SetSecurityInfo içinde (ResourceType tipi, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) System.Security.AccessControl.NativeObjectSecurity.Persist içinde (String name, AccessControlSections includeSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, Boolean isFile) at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) at Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext) at Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) adresinde In Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, String syncSessionId) at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, String user, String siteName) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData) Çözüm:
VS Tools'u yeniden başlat, Yayımla'na tıklayın ve aşağıdaki görsel açılacak:
Kontrol "Bu sertifikayı Visual Studia'daki gelecekteki oturumlar için saklayın" çözülebilir.
İlk yayınlandığında, tüm dosyaların sunucuya yüklenmesi gerektiği için yavaştı, aşağıdaki şekilde gösterildiği gibi:
Index.cshtml sayfa dosyasını değiştirmeyi deneyin ve Yeniden Yayımla'na tıklayın, aşağıdaki şekilde gösterildiği gibi yalnızca aşağıdaki 3 dosya güncellenecektir:
Web sitesini yenileyin ve aşağıda gösterildiği gibi güncellendiğini görün:
(Son)
|