Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 32993|Odpowiedź: 0

[Źródło] Publikuj swój projekt na zdalnym serwerze IIS za pomocą VS 2019

[Skopiuj link]
Opublikowano 09.10.2020 12:09:22 | | | |
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)




Poprzedni:Zbuduj proxy VPN ocserv na CentOS 7
Następny:Cele. Trzech muszkieterów
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com