В миналото, при публикуване на проекти, файловете се копираха и поставяха в директорията на сайта или се качваха в директорията чрез FTP, но сега, с появата на непрекъсната интеграция, автоматизирана експлоатация и поддръжка, както и автоматизирано публикуване, издателските проекти също се променят с всеки изминал ден.
Тази статия описва как да публикувате дистанционно на отдалечен IIS сайт чрез VS 2019.
Система за отдалечен сървър: Windows Server 2019 64-битов
Конфигурация на сървъра
1. Добавете IIS, инсталирайте .NET фреймуърк (пропуснато)
2. Изтегляне и инсталиране на Web Deploy
Web Deploy може да се използва за внедряване на уеб проекти локално и дистанционно на следния адрес:Входът към хиперлинк е видим.
В момента на инсталация, изберете"Завършено"След инсталацията ще видите услугата "Web Management Service" в услугата, както е показано на фигурата по-долу:
Ако не е инсталиран, VS ще получи следната грешка при дистанционно публикуване:
--------------------------- Microsoft Visual Studio --------------------------- Не успях да се свържа с отдалечения компютър ("xx"). Уверете се, че Web Deploy е инсталиран на отдалечената машина и че необходимият процес ("Web Management Service") е стартиран. Научете повече на:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Не мога да се свържа с отдалечени сървъри --------------------------- Сигурни ли сте ---------------------------
3. Инсталирайте "IIS Management Scripts and Tools"
Отидете на Изберете Сървърни роли > Уеб сървър (IIS) > Административни инструменти, след това изберете ролята IIS Административни скриптове и инструменти, кликнете върху Следващо и инсталирайте ролята.
4. IIS позволява отдалечени връзки
Намерете услугата за управление в IIS и активирайте отдалечени връзки, както е показано на следното изображение:
(Забележка:Отворете входящия порт 8172 в групата за защитна стена и сигурност)
5. Създайте нов сайт на IIS
Създайте нов сайт с име test1, както е показано на следващата фигура:
6. IIS добавя административни потребители
Добавете потребител на IIS Manager, както е показано на следното изображение:
В същото време, на сайта test1, добавете разрешение, както е показано на фигурата по-долу:
Ако не добавите разрешение, следната грешка ще бъде докладвана при дистанционно публикуване:
--------------------------- Microsoft Visual Studio --------------------------- Свързали сте се с отдалечен компютър ("xxx") чрез услугата за уеб управление, но не сте го одобрили. Уверете се, че използвате правилното потребителско име и парола, че сайтът, към който сте свързан, вече съществува и че потребителят, чиито данни за данни представляват, има достъп до сайта. Научете повече на:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Отдалеченият сървър връща грешка: (401) Unauthorized. --------------------------- Сигурни ли сте --------------------------- Издание ASP.NET MVC проект
Първо, създайте нов .NET 4.6.2 asp.net mvc проект с името WebAutomatedDeploy, използвайки VS 2019,
Създайте две нови библиотеки и програмата на уебсайта се позовава на тези две библиотеки едновременно. (Създайте и реферирайте 2 библиотеки, защото симулацията е по-близо до официалния проект)
Опитайте да започнете проекта, както е показано по-долу:
Кликнете с десен бутон върху проекта, изберете Publish, Web Server (IIS)-> Web Deployment и попълнете информацията за сървъра, както е показано на следната фигура:
Проверете връзката и тестът минава, както е показано на следното изображение:
Когато опитах да публикувам, грешката беше следната:
Задачата за уеб внедряване се провали. ((2020/10/9 11:34:38) Заявка за обработка на грешки на отдалечен компютър. )
(2020/10/9 11:34:38) Заявка за обработка на грешки на отдалечен компютър. Сървърът има затруднения с обработката на заявката. Свържете се с администратора на сървъра за подробности. WebAutomatedDeployment 0 Можете да видите конкретни грешки чрез Server Event Viewer, както е показано на следващата фигура:
User: itsvse Клиентски 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: Възникна изключение за агент за разполагане на проследяване, разпространено към клиента. Заявка ID "def8d9f7-1a72-4b19-8b75-919f8c6a9604", времеви печат за заявка: "2020/10/9 11:51:29". Подробности за грешките:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 В System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, име на низ, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier собственик), SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) в System.Security.AccessControl.NativeObjectSecurity.Persist(Име на низ, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) В System.Security.AccessControl.NativeObjectSecurity.Persist(Име на низ, AccessControlSections includeSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, Boolean isFile) at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, булев whatIf) в Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext) в Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) в Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) в Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) В 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) Решение:
Рестартирайте VS Tools, кликнете Публикуване и следващото изображение ще се появи:
Проверете "Запази този сертификат за бъдещи сесии във Visual Studia" може да бъде решен.
Първият път, когато беше публикуван, беше бавен, защото всички файлове трябваше да бъдат качени на сървъра, както е показано на фигурата по-долу:
Опитайте да промените страницата на Index.cshtml и кликнете Republish, само следните 3 файла ще бъдат обновени, както е показано на фигурата по-долу:
Обновете уебсайта и открийте, че е обновен, както е показано по-долу:
(Край)
|