Visual Studio - Web Deploy로 Publish 시 암호창이 매번 뜨는 문제
웹 프로젝트를 "Web Deploy"를 이용해 "Publish" 메뉴로 배포할 수 있는데요,
비주얼 스튜디오에서 IIS 웹 서버로 "Web Deploy"를 이용해 배포하는 방법
; https://www.sysnet.pe.kr/2/0/12353
윈도우 인증 등의 연동이 안 되어 있다면 기본적으로 암호를 묻게 됩니다.
Web Deploy Client
Please input password to connect to Web Deploy host
왜냐하면, PublishSettings 파일에는 대개의 경우 userName 정보까지만 있기 때문에 이를 pubxml로 가져오게 되면 마찬가지로 암호가 없는 계정명만 있기 때문입니다.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://.../</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<ProjectGuid>d34b730e-528a-4fab-b335-bed2bde4abe8</ProjectGuid>
<MSDeployServiceURL>https://...:8172/msdeploy.axd?site=...</MSDeployServiceURL>
<DeployIisAppPath>...</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>...[계정]...</UserName>
<_SavePWD>False</_SavePWD>
</PropertyGroup>
</Project>
검색해 보면, Password/UserPWD 노드를 명시하면 된다고 하는데,
Webdeploy Publish Profile password saving
; https://stackoverflow.com/questions/13762615/webdeploy-publish-profile-password-saving
<UserName>YourName</UserName>
<Password>YourPassword</Password>
또는,
<UserName>.\PubUser1</UserName>
<UserPWD>Password1234</UserPWD>
일단 제 경우에는 그렇게 했어도 매번 암호를 묻는 것은 마찬가지였습니다. 대신, 다른 우회 방법이 있는데요, 애초에 전달받은 PublishSettings에 암호를 명시한 다음,
<publishData>
<publishProfile
publishUrl="https://.../msdeploy.axd?site=..."
msdeploySite="..."
destinationAppUrl="http://..."
profileName="Default Settings"
publishMethod="MSDeploy"
userName="...[계정]..."
userPWD="...[암호]..."
AllowUntrustedCertificate="True"
/>
</publishData>
이것을 다시 가져오기로 pubxml로 등록하면 이후부터는 비주얼 스튜디오가 더 이상 암호를 묻지 않았습니다. 이때에도 pubxml에 암호가 별도로 명시되지 않은 것을 보면 보안상 비주얼 스튜디오가 따로 암호화해 cache를 하는 것으로 예상이 됩니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]