통과 인증을 사용하여 IIS 7에 웹 배포 IIS 7.5를 실행하는

많은 시행 착오 구성 후 현재 msdeploy.exe를 스크립트하여 Visual Studio 2010에 빌드 된 패키지를 IIS 7.5를 실행하는 원격 서버에 다음과 같은 명령 줄로 배포 할 수 있습니다.

기본 인증 명령 :

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='Basic',username='DOMAIN\myuser',password='xxx',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

통과 인증을 사용하여 명령 행에서 비밀번호를 제공 할 필요가 없습니까? 웹 배포 문서는 authType이 매개 변수를 언급 하는 대신 기본으로, ‘NTLM’를 지정할 수 있습니다. 그러나이 작업을 시도 할 때마다 (아래 예 참조) 401을 나타내는 오류가 발생합니다. WMSvc 웹 로그에 401.2가 표시되고 기본 인증을 사용하는 이전의 시도와 달리 실제로 DOMAIN \ myuser가 표시되는 것과 달리 해당 로그 항목에 사용자 ID가 채워지지 않았습니다. 웹 로그에. 클라이언트 나 서버의 이벤트 뷰어에는 다른 유용한 정보가 없습니다.

참고 : 대상 웹 서버가 다른 도메인에 있으므로 net use \\webserver /u:DOMAIN\myuser토큰을 설정합니다.

통과 인증 명령 시도 :

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

msdeploy.exe가 HTTP 수준에서 IIS를 제대로 인증하지 못하는 것 같습니다. 무엇이 잘못 될 수 있습니까?

클라이언트는 Windows XP, 서버는 Win2008R2입니다. 둘 다 msdeploy.exe 버전 7.1.618.0을 실행 중입니다. 둘 다 .NET 2.0, 3.5 및 4.0이 설치되어 있습니다.



답변

클라이언트 컴퓨터가 동일한 도메인을 유지하지 않으면 통과 인증을 사용할 수 없습니다. web deploy 1.1을 사용하는 경우 사용자 이름과 비밀번호를 명령 행에 직접 입력하지 않도록 storeCredentials 및 getCredentials를 시도 할 수 있습니다.


답변

문제를 완전히 이해하지 못했을 수도 있지만 -storeCredentials 및 -getCredentials 플래그를 사용하여이 작업을 수행 할 수 있습니까?


답변

이것은 분명히 늦게 답변 이며이 문제를 해결하거나 해결했음을 확신하지만 다른 사람에게 도움이되는 경우 :

대상 웹 서버가 다른 도메인에있는 경우에도 MSDeploy를 사용하여 NTLM 인증을 사용하여 패키지를 배포 할 수 있습니다. 이것은 대략 우리가 사용하는 명령 줄입니다.

msdeploy.exe -source:package='MyPackage.csproj.zip' -dest:auto,computerName='https://www.myserver.com:8172/MsDeploy.axd?site=mysitename',authtype='NTLM',includeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"MyPackage.csproj.SetParameters.xml"

이 작업을 수행 하려면 대상 도메인의 username + password 와 동일하게 username + password의 보안 컨텍스트에서 소스 머신에서이 명령을 실행하십시오 .

param 파일은 인증과 관련이 없지만 완전성을 위해 포함 시켰습니다. 이는 배포 위치에 따라 응용 프로그램에 다른 연결 문자열을 적용하는 데 사용하는 방법입니다.

“넷 사용”접근 방식을 사용하여 토큰을 설정하지는 않습니다. 이것이 HTTP를 통한 NTLM 인증으로 쉽게 변환되는지는 확실하지 않습니다.


답변

IIS 사이트 관리자 페이지-> IIS-> 인증으로 이동하십시오.

익명 인증 사용-> IIS 게스트 사용자 지정 (IUSER_computername)

웹 사이트 wwwroot 폴더에 IIS 게스트 사용자 권한을 부여하십시오.


답변