W przeszłości, podczas publikowania projektów, pliki były kopiowane i wklejane do katalogu strony lub przesyłane do katalogu przez FTP, ale obecnie, wraz z pojawieniem się ciągłej integracji, zautomatyzowanej obsługi i konserwacji oraz automatycznego publikowania, projekty publikacyjne również zmieniają się z każdym dniem.
Ten artykuł opisuje, jak publikować zdalnie na zdalnej lokalizacji IIS za pośrednictwem VS 2019.
System Zdalnego Serwera: Windows Server 2019 64-bit
Konfiguracja serwera
1. Dodaj IIS, zainstaluj framework .NET (pominięcie)
2. Pobierz i zainstaluj Web Deploy
Web Deploy może być używany do wdrażania projektów webowych lokalnie i zdalnie pod następującym adresem:Logowanie do linku jest widoczne.
W momencie instalacji wybierz"Kompletne"Po instalacji zobaczysz usługę "Web Management Service" w usłudze, jak pokazano na poniższym rysunku:
Jeśli nie jest zainstalowany, VS pojawi się następujący błąd podczas zdalnego publikowania:
--------------------------- Microsoft Visual Studio --------------------------- Nie udało się połączyć z zdalnym komputerem ("xx"). Upewnij się, że Web Deploy jest zainstalowany na komputerze zdalnym i że wymagany proces ("Web Management Service") został rozpoczęty. Dowiedz się więcej na:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Nie można połączyć się z serwerami zdalnymi --------------------------- Czy na pewno ---------------------------
3. Zainstalować "Skrypty i narzędzia zarządzania IIS"
Przejdź do Wybierz role serwera > serwerze sieciowym (IIS) > Narzędzia administracyjne, następnie wybierz rolę IIS Admin Scripts and Tools, kliknij Dalej i zainstaluj rolę.
4. IIS umożliwia połączenia zdalne
Zlokalizuj usługę zarządzania w IIS i włącz połączenia zdalne, jak pokazano na poniższym obrazku:
(Uwaga:Otwórz port przychodzący 8172 w grupie firewall i security)
5. Utworzenie nowej strony IIS
Stwórz nową stronę o nazwie test1, jak pokazano na poniższym rysunku:
6. IIS dodaje użytkowników administracyjnych
Dodaj użytkownika Menedżera IIS, jak pokazano na poniższym obrazku:
Jednocześnie na stronie test1 dodaj autoryzację, jak pokazano na poniższym rysunku:
Jeśli nie dodasz autoryzacji, następujący błąd zostanie zgłoszony podczas zdalnego publikowania:
--------------------------- Microsoft Visual Studio --------------------------- Połączyłeś się z komputerem zdalnym ("xxx") za pomocą usługi zarządzania siecią, ale nie udało ci się go autoryzować. Upewnij się, że używasz poprawnej nazwy użytkownika i hasła, że strona, do której jesteś podłączony, już istnieje oraz że użytkownik, którego dane są dostępne, ma dostęp do tej strony. Dowiedz się więcej na:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 Zdalny serwer zwraca błąd: (401) Nieautoryzowany. --------------------------- Czy na pewno --------------------------- Wydanie ASP.NET projektu MVC
Najpierw stwórz nowy projekt mvc .NET 4.6.2 asp.net pod nazwą WebAutomatedDeployment używając VS 2019,
Stwórz dwie nowe biblioteki, a program strony internetowej odnosi się do nich jednocześnie. (Stwórz i odwołuj się do 2 bibliotek, ponieważ symulacja jest bliższa oficjalnemu projektowi)
Spróbuj rozpocząć projekt zgodnie z poniższą ilustracją:
Kliknij prawym przyciskiem myszy na projekt, wybierz Publikuj, Serwer WWW (IIS)-> Wdrożenie webowe i wypełnij informacje o serwerze, jak pokazano na poniższym rysunku:
Zweryfikowaj połączenie i test przechodzi, jak pokazano na poniższym obrazku:
Gdy próbowałem opublikować, błąd wyglądał następująco:
Zadanie wdrażania stron internetowych nie powiodło się. ((2020/10/9 11:34:38) Żądanie przetwarzania błędów na komputerze zdalnym. )
(2020/10/9 11:34:38) Żądanie przetwarzania błędów na komputerze zdalnym. Serwer ma problemy z przetwarzaniem żądania. Skontaktuj się z administratorem serwera w celu uzyskania szczegółów. WebAutomatedDeployment 0 Możesz zobaczyć konkretne błędy za pomocą Server Event Viewer, jak pokazano na poniższym rysunku:
User: itsvse IP klienta: 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: Wystąpił wyjątek agenta wdrożenia śladu przekazany do klienta. Request ID "def8d9f7-1a72-4b19-8b75-919f8c6a9604", żądaj znacznik czasu: "2020/10/9 11:51:29". Szczegóły błędu:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 W System.Security.AccessControl.Win32.SetSecurityInfo(typ zasobów, nazwa ciągu znaków, Handle, SecurityInfos securityInformation, właściciel identyfikatora Security, Grupa SecurityIdentifier, GenericAcl sacl, GenericAcl dacl) na stronie System.Security.AccessControl.NativeObjectSecurity.Persist(Nazwa ciągu znaków, uchwyt SafeHandle, AccessControlSections includeSections, Object exceptionContext) W System.Security.AccessControl.NativeObjectSecurity.Persist(Nazwa ciągu znaków, AccessControlSections includeSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, boolean isFile) at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) na stronie Microsoft.Web.Deployment.DeploymentObject.Update (źródło DeploymentObject, DeploymentSyncContext syncContext) na stronie Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) na stronie Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) na stronie Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) W Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, 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) Rozwiązanie:
Zrestartuj VS Tools, kliknij Publikuj, a pojawi się następujący obraz:
Sprawdź "Zachowaj ten certyfikat na przyszłe sesje w Visual Studia" można rozwiązać.
Za pierwszym razem, gdy został opublikowany, był wolny, ponieważ wszystkie pliki musiały zostać przesłane na serwer, jak pokazano na poniższym rysunku:
Spróbuj zmodyfikować plik strony Index.cshtml i kliknij "Opublikuj ponownie", zaktualizują się tylko następujące 3 pliki, jak pokazano na poniższym rysunku:
Odśwież stronę internetową i zobacz, że została zaktualizowana, jak pokazano poniżej:
(Koniec)
|