Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 32993|Yanıt: 0

[Kaynak] Projenizi VS 2019 kullanarak uzak bir IIS sunucusuna yayınlayın

[Bağlantıyı kopyala]
Yayınlandı 9.10.2020 12:09:22 | | | |
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)




Önceki:CentOS 7 üzerinde bir ocserv vpn proxy oluşturun
Önümüzdeki:Aspose.Hücreler Üç Tüfekçi
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com