이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 32993|회답: 0

[출처] VS 2019를 사용해 원격 IIS 서버에 프로젝트를 게시하세요

[링크 복사]
게시됨 2020. 10. 9. 오후 12:09:22 | | | |
과거에는 프로젝트를 게시할 때 파일을 복사해 붙여넣기 하거나 FTP를 통해 사이트 디렉토리에 업로드했지만, 이제는 지속적 통합, 자동화된 운영 및 유지보수, 자동화된 게시의 등장으로 출판 프로젝트도 날마다 변화하고 있습니다.

이 글은 VS 2019를 통해 원격 IIS 사이트에 원격으로 게시하는 방법을 설명합니다.

원격 서버 시스템: Windows Server 2019 64비트

서버 구성

1. IIS 추가, .NET 프레임워크 설치 (생략)

2. 웹 배포 다운로드 및 설치

웹 배포는 다음 주소에서 로컬 및 원격으로 웹 프로젝트를 배포하는 데 사용할 수 있습니다:하이퍼링크 로그인이 보입니다.



설치 시, 선택"완료"설치 후에는 아래 그림과 같이 서비스 내에 "웹 관리 서비스" 서비스를 보게 됩니다:



설치되지 않은 경우, 원격 게시 시 VS는 다음과 같은 오류를 뜹니다:

---------------------------
마이크로소프트 비주얼 스튜디오
---------------------------
원격 컴퓨터("xx")에 연결되지 않았습니다. 원격 기기에 Web Deploy가 설치되어 있고 필요한 프로세스("웹 관리 서비스")가 시작되었는지 확인하세요.  자세한 내용은 다음을 참조하세요:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 원격 서버에 연결할 수 없습니다
---------------------------
확실한가요   
---------------------------


3. "IIS 관리 스크립트 및 도구" 설치

관리 도구에서 웹 서버(IIS) > 서버 역할을 선택> 다음 IIS 관리 스크립트 및 도구 역할을 선택한 후 다음을 클릭해 역할을 설치하세요.



4. IIS가 원격 연결을 가능하게 합니다

IIS에서 관리 서비스를 찾고 원격 연결을 활성화하세요. 아래 이미지에 나타난 것처럼:





(참고:방화벽과 보안 그룹에서 8172 인바운드 포트를 열어

5. 새로운 IIS 사이트 구축

다음 그림과 같이 test1이라는 새 사이트를 생성하세요:



6. IIS가 관리자 사용자 추가함

다음 이미지에 보이는 대로 IIS 관리자 사용자를 추가하세요:



동시에 test1 사이트에서는 아래 그림과 같이 권한을 추가하세요:



인증을 추가하지 않으면 원격 게시 시 다음과 같은 오류가 보고됩니다:

---------------------------
마이크로소프트 비주얼 스튜디오
---------------------------
웹 관리 서비스를 통해 원격 컴퓨터("xxx")에 연결했으나 권한을 부여하지 않았습니다. 올바른 사용자 이름과 비밀번호를 사용하고, 연결된 사이트가 이미 존재하며, 자격 증명을 가진 사용자가 사이트에 접근할 수 있는지 확인하세요.  자세한 내용은 다음을 참조하세요:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 원격 서버는 다음과 같은 오류를 반환합니다: (401) 권한 없음.
---------------------------
확실한가요   
---------------------------
MVC 프로젝트 ASP.NET 출시

먼저, VS 2019를 사용해 WebAutomatedDeployment라는 이름의 새로운 .NET 4.6.2 asp.net mvc 프로젝트를 만듭니다.

두 개의 새로운 라이브러리를 만들면, 웹사이트 프로그램이 이 두 라이브러리를 동시에 참조합니다. (시뮬레이션이 공식 프로젝트에 더 가깝기 때문에 라이브러리 2개를 생성하고 참조하세요)


아래 그림과 같이 프로젝트를 시작해 보세요:



프로젝트를 우클릭하여 게시, 웹 서버(IIS)-> 웹 배포를 선택한 후 서버 정보를 입력하세요. 아래 그림과 같이 표시됩니다:



연결 상태를 확인하고 테스트가 통과했는지 확인하세요. 아래 이미지에서 확인할 수 있습니다:



제가 출판을 시도했을 때 오류는 다음과 같았습니다:

웹 배포 작업은 실패했습니다. ((2020/10/9 11:34:38) 원격 컴퓨터에서 오류 처리 요청. )

(2020/10/9 11:34:38) 원격 컴퓨터에서 오류 처리 요청.
서버가 요청을 처리하는 데 문제가 있습니다. 자세한 내용은 서버 관리자에게 문의하세요.        WebAutomatedDeployment 0
서버 이벤트 뷰어를 통해 다음 그림과 같이 특정 오류를 확인할 수 있습니다:



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, string name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl)
   at 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, Boolean whatIf)
   Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject 소스, 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)
   In Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, 문자열 syncSessionId)
   at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, String user, String siteName)
   Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData)
   Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)
용액:

VS 도구를 재시작하고 Publish을 클릭하면 다음 이미지가 나타납니다:



체크 "이 인증서는 Visual Studia에서 앞으로 세션을 위해 보관하세요"해결할 수 있어.

처음 공개되었을 때는 모든 파일을 서버에 업로드해야 했기 때문에 느렸습니다. 아래 그림에서 볼 수 있습니다:



Index.cshtml 페이지 파일을 수정하고 재게시를 클릭해 보세요. 아래 그림과 같이 다음 3개의 파일만 업데이트됩니다:



웹사이트를 새로고침하면 아래에 표시된 대로 업데이트된 것을 확인해 보세요:



(끝)




이전의:CentOS 7에서 ocserv VPN 프록시를 구축하세요
다음:어지저스.셀 쓰리 머스킷티어
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com