VSO ๋น๋ ์๋ฒ vNext์์ Azure ์น ์ฌ์ดํธ๋ก ๋ฐฐํฌํ ๋ ์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
Error Code: ERROR_FILE_IN_USE
More Information: Web Deploy cannot modify the file 'AspNet.Loader.dll' on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock
, or use the AppOffline rule handler for .Net applications on your next publish attempt.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.
๋ฐฐํฌ ์ ์ ๋ค์ ์์ azure ์น ์ฌ์ดํธ ๋ช ๋ น์ ์ถ๊ฐํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฌ์ ํ ๋๋ฌด ์์ฃผ ๋ค์ด์ค๋ ๊ฒ ๊ฐ์ต๋๋ค.
WebDeploy ๋ฐฐํฌ๋ฅผ ๋ฐฉํดํ๋ Azure VM์ IIS ํ์ผ ์ ๊ธ๊ณผ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ธ ๊ฐ์ง WebDeploy ๋ช ๋ น์ ์คํํ๋ ๊ฒ์ ๋๋ค. AppPool ์ค์ง, โโ๋ฐฐํฌ, AppPool ๋ค์ ์์. ๋ด ์คํฌ๋ฆฝํธ ์ฐธ์กฐ ; ์ธ ๊ฐ์ง WebDeploy ๋ช ๋ น์ ์คํํ ์ ์๋ ๊ฒฝ์ฐ Azure Apps์ ์ ์ฌํ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
beta6์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง! ๋ด vNext ์ฑ์ ๊ฒ์ํ ๋ ๋ด Visual Studio 2015๊ฐ ์ค์ ๋ก ์ ์ง๋ฉ๋๋ค(beta6 ๋ฐ beta7 ๋ชจ๋ ์๊ฐํฉ๋๋ค).
๋ฐฐํฌ๋ฅผ ์ํํ๊ธฐ ์ํด Microsoft์์ ์ ๊ณตํ ์คํฌ๋ฆฝํธ ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด PublishAspNet5Website.ps1
์ ์ค์ ์ถ๊ฐํ์ฌ ์น ์ฑ์ ๋ค์ ์์ํ ์ ์์ต๋๋ค.
Restart-AzureWebsite -Name $websiteName
์ด ๊ฒ์๋ฌผ์ ์ค๋ช ๋ ๋น๋ ์คํฌ๋ฆฝํธ ์์ ์ฌํญ์ด ์์ต๋๋ค. Azure Web App ์ฌ๋กฏ์ ๋ํ ASP.NET 5 ๋ฐฐํฌ ๋ฌธ์ ํด๊ฒฐ
@brandonmartinez , ์น์ฌ์ดํธ๋ฅผ ๋ค์ ์์ํ๋ ๊ฒ์ ๋์์ด ๋์ง ์์ต๋๋ค. ํ๋ก๋์ ์น์ฌ์ดํธ๋ ๊ณ์ํด์ ์์ฒญ์ ๋ฐ์ ํ์ผ์ ๋ค์ ์ ๊ธ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ฌ IIS์ Azure ์น ์ฌ์ดํธ๋ฅผ ๋ชจ๋ ์ ๋ฐ์ดํธํ๋ ์ ๋ขฐํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์น ์ฌ์ดํธ์ ์์ฉ ํ๋ก๊ทธ๋จ ํ์ ์ข ๋ฃํ๊ณ ํ์ผ์ ์ ๋ฐ์ดํธํ ๋ค์ ์น ์ฌ์ดํธ๋ฅผ ๋ค์ ์์ํ๋ ๊ฒ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ @GuardRex ์ ๋งํฌ ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
๊ทธ๋ฌ๋ VS2015๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์กฐ๊ฑด์์ ์์ ํ ๋ ์ฌ์ฉ์ ์ง์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋ฉ๋๋ค.
์๋ก์ด HttpPlatformHandler ์ธํ๋ผ(๋ ์ด์ AspNet.Loader.dll์ด ํ์ํ์ง ์์)๊ฐ ์ข ๋ ๊ด๋ํด์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์ ์จ์ ๊ฑฐ๋์ง๋ ์๊ฒ ์ต๋๋ค. ์ ๊ธด ๋ ๋ค๋ฅธ .dll์ ์ป์ ์ ์์ต๋๋ค.
@rubenprins VS์ Azure SDK ๋๊ตฌ๋ฅผ ํตํด ์ ๋ ์ฌ์ฉํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.
VM์ ๋ํ PS ์ก์ธ์ค ๊ถํ์ ์ป์ ์ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ํํ๋ PS ๋ช ๋ น์ด ์์ต๋๋ค. https://github.com/GuardRex/net5-iis-ps-publish/blob/7623122dbfdc55a7c53c8edd2e97443e0eea22c9/net5-iis-ps-publish.ps1#L389 -L396
aspnet/vsweb-publish ๋ ๋งค์ฐ ํฅ๋ฏธ๋กญ์ต๋๋ค. ๊ทธ๋ฌ๋ offline-template.html
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ผ๋ฉฐ ๊ทธ ๋ฐฉ๋ฒ์ด dll ์ ๊ธ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค๊ณ ์๊ฐํ์ต๋๋ค ... AppPool์ ์ค์งํ๊ณ AppPool์ ๋ฐฐํฌํ๊ณ ๋ค์ ์์ํ๋ ๊ฒ๋ง์ผ๋ก ์์ ์ ์ด์์ต๋๋ค. ์์
์ ๊ทผ ๋ฐฉ์.
VS2015์ ๊ธฐ๋ณธ ์กฐ๊ฑด์์ ์์ ํ ๋ ์ฌ์ฉ์ ์ง์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. 'ํ์ผ ์์คํ ์ ๊ฒ์'๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ๊ฒ์ ์งํ์ MSDeploy ๋นํธ๊ฐ ํฌํจ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๊ฒฐํ๋ฉด ์ฌ๋ฌ VM์ ๋ํ ๋งค์ฐ ๊ฐ๋จํ๊ณ ์ ์ฉํ ๋ฐฐํฌ ์คํ ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ก์ต๋๋ค. ์คํฌ๋ฆฝํธ๋ ์์ฐจ์ ์ผ๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ VM์์ VM์ผ๋ก ๋ฐ๋ก ์ด๋ํฉ๋๋ค. ์ข์ ์ปคํผ ๋ธ๋ ์ดํฌ๋ฅผ ๋ง๋ญ๋๋ค. :์๋ค:
Azure Resource Manager ํ๊ณผ ํจ๊ป Azure Resource Manager๋ฅผ ์ฌ์ฉํ์ฌ ์ธํฐ๋ท ์ฐ๊ฒฐ ๋ก๋ ๋ฐธ๋ฐ์ ๊ตฌ์ฑ ์์ํ๊ธฐ ์์ ๋ฐฐํฌํ๋ ๋์ VM์ ํธ๋ํฝ ์ ์ก์ ์ผ์์ ์ผ๋ก ์ค์งํ๋๋ก ๋ก๋ ๋ฐธ๋ฐ์์ ์ง์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ง๋ฌธ์ด ์์ต๋๋ค.
์ด์จ๋ ... @pekkah ๊ฐ ์ ๊ธฐํ ๋น๋ฉดํ ์ฃผ์ ๋ก ๋์๊ฐ๋๋ค. PS ๋ช ๋ น์ด ์๋ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฏ๋ก VSO ๋น๋์์ ์คํํ๋ ์ต์ ์ ํ์ธํ์ญ์์ค.
Microsoft/vso ์์ด์ ํธ ์์
๋น๋ ํ๋ก์ธ์ค์์ ์คํฌ๋ฆฝํธ ์คํ
Azure Continuous Deployment ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ํด Team Foundation Service(Visual Studio Online)์์ ์ฌ์ ๋น๋ ์คํฌ๋ฆฝํธ ์คํ
Visual Studio Online์ ์๋ก์ด ๋น๋ ์๋ํ ๊ธฐ๋ฅ
... ์ ... ๊ทธ๋ฐ ์ผ์ด ๋น์ ์ ์ํด ์ผ ํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ๋ ๊ฐ์ ๋ฌธ์ ...
์์ง ๊ณต์ ์๋ฃจ์ ์ ๊ธฐ๋ค๋ฆฌ๋ ์ค
๋ธ๋ฃจ๋ ธ
@moozzyk , ํด๋น ๋ฌธ์ ๋ msdeploy์ ๊ฐ์ ์ ์ฉ ๋๊ตฌ๋ฅผ ํตํด์๋ง ๋ฐฐํฌ๋ฅผ ์์ ํฉ๋๋ค. Xcopy/ํ์ผ ๋๊ธฐํ ๋ฐฐํฌ๋ ์ฌ์ ํ ๋ถ๊ฐ๋ฅํ๋ฉฐ, ASP.NET v1-4์์๋ง ์๋ํ๋ ๋ง์ CI ์๋๋ฆฌ์ค๋ ์ฐจ๋จ/๋ฐฉํดํฉ๋๋ค.
ASP.NET Core 1.0 RC2(Visual Studio 2015.2 ํฌํจ) MSDeploy to IIS 8 on Windows 2012 R2(์๋ฒ์ฉ ์ต์ ๋๊ตฌ ํฌํจ) ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. dotnet.exe ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๊ฑฐ๋ ์์ฉ ํ๋ก๊ทธ๋จ ํ์ ์ฌํ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์๋ฒ์ ๋ํ ์๊ฒฉ ๋ฐ์คํฌํฑ ์ก์ธ์ค๊ฐ ํ์ํ๋ฉฐ ์์กฐ๋ก์ด ํ๋ก์ธ์ค๊ฐ ์๋๋๋ค.
@dg9ngf - ์ด๊ฒ์ ํ์ฌ web.deploy์ ๋ฒ๊ทธ์ ๋๋ค. Azure์ฉ app_offline.htm ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง๋ง ๋ก์ปฌ๋ก ๋ฐฐํฌํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ต๋๋ค. ๊ฒ์ ํ๋กํ(PublishProfiles->*.pubxml)์ ์ด๊ณ ๋ค์์ ๋ณ๊ฒฝํด ๋ณด์ญ์์ค.
<EnableMSDeployAppOffline>False</EnableMSDeployAppOffline>
์๊ฒ
<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
์ด๊ฒ์ด ์๋ํ์ง ์์ผ๋ฉด @vijayrkn ์๊ฒ ๋ฌธ์ํ์ญ์์ค.
VS ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ msdeploy ํ๋กํ์ ์ฌ์ฉํ์ฌ ๊ฒ์ํ๋ ๊ฒฝ์ฐ ์ด ์์ฑ์ด pubxml์ ์๋์ผ๋ก ์ถ๊ฐ๋ฉ๋๋ค.
<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
์ถ๋ ฅ ์ฐฝ์ ์ด์ ์ ์ฌํ msdeploy ๋ช ๋ น์ด ํ์๋์ด์ผ ํฉ๋๋ค.
"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:manifest='C:\Users\vramak\AppData\Local\Temp\PublishTemp\obj\SourceManifest.xml' -dest:manifest='C:\Users\vramak\AppData\Local\Temp\PublishTemp\obj\DestManifest.xml',ComputerName='https://netcoreappwithdb.scm.azurewebsites.net/msdeploy.axd',UserName='$netcoreappwithdb',Password='{PASSWORD-REMOVED-FROM-LOG}',IncludeAcls='False',AuthType='Basic' -verb:sync -enablerule:AppOffline -enableRule:DoNotDeleteRule -retryAttempts:20
-e nablerule: ๋ช ๋ น์ AppOffline์ ๋ฐฐํฌ ์ค์ appOffline ์ถ๊ฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ฌ์ฉ์ ์ง์ appOffline ์ฝํ ์ธ ๊ฐ ํ์ํ ๊ฒฝ์ฐ pubxml์์ ์ด ์์ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
<AppOfflineTemplate>Path to app offline</AppOfflineTemplate>
ํด๋น ์์ฑ์ Visual Studio์์ ๋ง๋ .pubxml ํ์ผ์ _not_ ์์์ต๋๋ค. ๊ทธ๋์ ์ถ๊ฐํ์ง๋ง ๋ฐ๋์ง ์์์ต๋๋ค. -e nablerule:AppOffline ์ธ์๋ ์ถ๋ ฅ ์ฐฝ์ ํ์๋์ง _์์ต๋๋ค_.
์ถ๋ ฅ ์ฐฝ์ ํ์๋ msdeploy ๋ช ๋ น์ค์ ๊ณต์ ํ ์ ์์ต๋๊น?
๋ํ pubxml์ WebPublishMethod๊ฐ 'MSDeploy'์ธ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
<WebPublishMethod>MSDeploy</WebPublishMethod>
์๋์, ํ์ผ์๋ <WebPublishMethod>FileSystem</WebPublishMethod>
๊ฐ ์์ต๋๋ค.
๋ค์์ ์ถ๋ ฅ ์ฐฝ์ ๋ช
๋ น์ค์
๋๋ค. Executing command ["C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:manifest='C:\Users\yves\AppData\Local\Temp\PublishTemp\obj\SourceManifest.xml' -dest:manifest='C:\Users\yves\AppData\Local\Temp\PublishTemp\obj\DestManifest.xml' -verb:sync -enableRule:DoNotDeleteRule -retryAttempts:20 -disablerule:BackupRule]
์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ค๋ช ๋ ๋๋ก VSTS์์ "Azure Web App Deployment" ์์ ์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ๊ณ ์์ต๋๋ค. http://donovanbrown.com/post/2016/05/30/DevOps-for-ASPNET-Core-RC2
ํด๋น ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ <EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์๋ ํ์ธ์, ์ ๋ Azure์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฒช์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ์ต๋๋ค. https://github.com/davidebbo/WAWSDeploy/issues/14
@dg9ngf ํ์ฌ ๋ฒ์ ์ powershell ์คํฌ๋ฆฝํธ์์๋ WebPublishMethod - 'MSDeploy'์ ๋ํด์๋ง appOffline์ ์ง์ํฉ๋๋ค.
ํ์ผ ์์คํ ๊ฒ์์ ๋ํ AppOffline ์ง์์ ๋ค์ ๋ฆด๋ฆฌ์ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@bojingo ์ ๋ ๊ฐ์ ์ํฉ์ ๋๋ค. ๋น์ ์ ์ด๊ฒ์ ์์ ๋์ต๋๊น?
@davenewza : ํด๋น ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋ค์ ๋ฐฉ๋ฌธํ์๋ฉด ๋๊ธ์ ํด๊ฒฐ์ฑ
์ด ์์ต๋๋ค.
http://donovanbrown.com/post/2016/05/30/DevOps-for-ASPNET-Core-RC2
๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ดํธ๋ฅผ ์ค์ง/์์ํ๋ ค๋ฉด VSTS ๋จ๊ณ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ํนํ ๋ฐฐํฌ ์ฌ๋กฏ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์์ ์ธ ์๋ฃจ์ (์ค์ ๋ก๋ ์๋นํ ์ ๋ฆ๋ฐ์ด)๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ง๋ง ๊ฐ๋ฐ/ํ ์คํธ ํ๊ฒฝ์์๋ ์ ๋๋ก ์๋ํฉ๋๋ค.
msdeploy ๊ธฐ๋ฐ์ด๊ณ ์์ ํ๊ฒ ๋ค๊ณ ์ฝ์ํ๋ ์น ์ฑ ๋ฐฐํฌ VSTS ์์
์ ์๋ก์ด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ARM ๋ฒ์ ์ด ์์ง๋ง ๊ตฌ๋
์ ๋ํ ์๋น์ค ์ฃผ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์ด์ด ์์์ต๋๋ค. ๋ฒ๊ฑฐ๋ก์์ด ์์๋ค. ์๋ํ๋๋ก ํ ์ ์์ต๋๋ค.
https://github.com/Microsoft/vsts-tasks/tree/master/Tasks/AzureRmWebAppDeployment
@vijayrkn VS2015 ์ ์น ๊ฒ์ ๋ํ ์์์๋ msdeploy๋ฅผ ์ค์ ํ๋ ์ต์ ์ด ํฌํจ๋์ด ์์ง ์์ผ๋ฉฐ WebPublishMethod=FileSystem์ ๋ํ ์ต์ ๋ง ์ ๊ณตํฉ๋๋ค.
WebPublishMethod=msdeploy์ฉ ์ํ .pubxml์ ์ ๊ณตํ ์ ์์ต๋๊น?
@tomfanning ASP.NET ํต์ฌ ์ฝ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ํ์ฌ ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ๊ฒ์ ์ต์
์ ํ์ผ ์์คํ
์
๋๋ค. ์ฝ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒ์ํ๋ ค๊ณ ํฉ๋๊น? ์น ์ฑ์ ๊ฒฝ์ฐ ์ด 4๊ฐ์ง ์ต์
(webdeploy, ์น ๋ฐฐํฌ ํจํค์ง, ํ์ผ ์์คํ
๋ฐ ftp)์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
์ํ webdeploy pubxml - https://github.com/dotnetpublish/AspNetCoreBlogList/tree/master/src/AspNetCoreBlogList/Properties/PublishProfiles
์น ์ฑ์ด๊ณ ํ์ผ ์์คํ
๊ฒ์ ์ต์
๋ง ํ์๋๋ ๊ฒฝ์ฐ xproj์์ ์ด๋ฅผ ๊ฐ์ ธ์ค๋์ง ํ์ธํ ์ ์์ต๋๊น?
<Import Project="$(VSToolsPath)\DotNet.Web\Microsoft.DotNet.Web.targets" Condition="'$(VSToolsPath)' != ''" />
@bojingo ์๋น์ค ์ฃผ์ฒด๋ฅผ ์ค์ ํ ์ ์์๊ณ ์ธํฐ๋ท์ ์ฌ๋ฌ ์์ต์๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋งํฌ๊ฐ ์์ง๋ง ํ์ํ ๊ฒฝ์ฐ ์ฐพ์ ์ ์์ต๋๋ค. ์ด์ ๋ด ๋ฌธ์ ๋ ์์ ์ ASP Net Core ๊ฒ์์์ ์์ฑ๋์ง ์๋ parameters.xml ํ์ผ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค... :(
๋๋ TFS 2015 ์จํ๋ ๋ฏธ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ ์์ฒญ๋๊ฒ ์ฑ๊ฐ์ ๋ฌธ์ ๋ก ๋จ์ ์์ต๋๋ค.
์ ๋ ์ด ๋ฌธ์ ๋ก...
๋ด ์๋ฃจ์ ์ ๋ฐฐํฌํ ์คํ ์ด์ง ์ฌ๋กฏ์ ์ค์ง๋ ์ํ๋ก ์ ์งํ ๋ค์ ๊ฒ์ํ๋ ๊ฒ์ ๋๋ค(์๋ ์ค์ ์๋). ๋ค์ ์์ํ ๋ค์ ๋ฐฐํฌ๊ฐ ์๋ํ์ง ์์(VSTS๋ก ๋ฐฐํฌ)
๋๋ ์คํ ์ด์ง ์ฌ๋กฏ์ ๋ํ ์ต์ ์ ์ ๊ณตํ์ง ์๋ Azure Web Apps์ ํจ๊ป ๋ฌธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์ ์ต์ ์ ํ์ธํ๋ฉด ํจ๊ณผ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
Visual Studio 2015 ์
๋ฐ์ดํธ 3์ ์ฌ์ฉํ์ฌ asp.net core 1.1/.net framework 4.5.2 ์ฌ์ดํธ๋ฅผ IIS์ ๊ฒ์ํ๊ณ ์์ต๋๋ค. ์ฌ์ดํธ๋ฅผ ๋ค์ด์ํค์ง ์๋ App_Offline.htm
๋ฅผ ๋จ์ด๋จ๋ฆฝ๋๋ค. ์๋ฒ์์ app_offline.htm
๋ก ์ด๋ฆ์ ๋ฐ๊พธ๋ฉด ์ฌ์ดํธ๊ฐ ๋ค์ด๋ฉ๋๋ค.
์ด app_offline.htm์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์์ผ ํฉ๋๋ค.
https://github.com/aspnet/IISIntegration/issues/81
๋ฐฐํฌ์๋ app_offline.htm์ ์ ๋ก๋ํฉ๋๋ค(๋์๋ฌธ์ ๊ตฌ๋ถ ์ ํจ).
๋ฐฉ๊ธ ๋ค์ ๊ฒ์ํ๋๋ฐ App_Offline.htm
์ด ๋จ์ด์ก๊ณ ๋ด ์ฌ์ดํธ๊ฐ ๋ค์ด๋์ง ์์๊ณ ํ์ผ ์ฌ์ฉ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. app_offline.htm
๋ก ๋ณ๊ฒฝํ๋ฉด ์ฌ์ดํธ๊ฐ ๋ค์ด๋๊ณ ์ค๋ฅ ์์ด ๊ฒ์ํ ์ ์์ต๋๋ค.
๊ณต์ UNC ๊ฒฝ๋ก์์ ํธ์คํ ํ๊ณ ์์ต๋๋ค. ์ฐจ์ด๊ฐ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@Tratcher - App_Offline.htm์ ๋์๋ฌธ์๊ฐ ์ฌ๊ธฐ์ ์ฐจ์ด๊ฐ ๋๋ ์ด์ ๋ฅผ ์์ญ๋๊น?
jayvijayrkn ์ฐธ์กฐ https://github.com/aspnet/AspNetCoreModule/issues/50
Azure ์ฑ ์ค์ ์ ์ถ๊ฐํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
MSDEPLOY_RENAME_LOCKED_FILES = 1
... ์ฌ๊ธฐ์ ์ค๋ช
๋ ๋๋ก:
https://github.com/Microsoft/vsts-tasks/issues/1607#issuecomment -260946957
YMMV
@BenBarreth ๋น Azure์ ์ ์ฉ ๊ฐ๋ฅํ ์ ์ฌํ ๊ฒ์ด ์์ต๋๊น?
์ฃ์กํฉ๋๋ค @jdshkolnik
MSDEPLOY_RENAME_LOCKED_FILES = 1์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐฐํฌ๊ฐ ์ฑ๊ณตํ๋ ๋ฐ ๋์์ด ๋์ง๋ง ๋ฐํ์์ ์ DLL์ด ์ ํ๋์ง ์์์ ์๋ฏธํ ์ ์์ต๋๋ค.
https://github.com/Azure/azure-webjobs-sdk-script/issues/569#issuecomment -264490818
๊ทธ๊ฒ์ ๋์๊ฒ ์ ์ ํ "์์ "์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค. ๋ฐฐํฌ ์คํจ๋ฅผ ์จ๊ธธ ๋ฟ์ ๋๋ค.
์ด ๋ฌธ์ ์์ ์ง์ ํ ์์ ์ ์ค๋ช
ํ ์ ์์ต๋๋ค.
https://github.com/Azure/azure-webjobs-sdk-script/issues/1023
์ ๋ง๋ก ์ด๊ฒ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฐพ๊ณ ์์ต๋๋ค. RM ์น ๋ฐฐํฌ VSTS ์์ ์ด "์ฑ ์คํ๋ผ์ธ์ผ๋ก ์ ํ" ์ต์ ์ ์ ํํ์ฌ ์ด ์์ ์ ์ฒ๋ฆฌํ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ด๋ฒ ์ฃผ๋ง๋ถํฐ ๊ณ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ๋ฐฐํฌ ์ฌ๋กฏ ์ค์ง, ๋ฐฐํฌ ๋ฐ ๋ค์ ์์์ผ๋ก ๋๋์๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด ๋ฌธ์ ๋ ์ง๋์ฃผ ๊ธ์์ผ์ ๋ฐ์ํ์ผ๋ฉฐ ๊ทธ ์ดํ๋ก ๋ฐฐํฌ๊ฐ ์ฐจ๋จ๋์์ต๋๋ค...
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. Always On = true์ธ ์ฌ์ดํธ์๋ง ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ํ์คํ์ง ์์ต๋๋ค.
๋ด ๊ตฌ์ฑ์์ MSDEPLOY_RENAME_LOCKED_FILES = 1์ ์ค์ ํ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ง๊ธ ๋ด ์๋ฒ์์ ๋น๋๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด๊ฒ์ ๋ถ๊ณผ ๋ฉฐ์น ์ ์ ์ผ์ด๋๊ธฐ ์์ํ์ต๋๋ค.
์ด๋ฒ ์ฃผ์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค. ์ด๋ฒ ์ฃผ๊น์ง ์ฑ์ ์คํ๋ผ์ธ์ผ๋ก ์ ํ = true ์ค์ ์ ์ฌ์ฉํ์ฌ VSTS์ AzureRM ์ฑ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ ์ผ๊ด๋๊ฒ ์๋ํ์ต๋๋ค. ์ด์ ์ด ์ค์ ์ด ๋ฌด์๋๊ฑฐ๋ ์๋น์ค๊ฐ ์ ์๊ฐ์ ์คํ๋ผ์ธ ์ํ๊ฐ ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฆด๋ฆฌ์ค๋ฅผ ์คํํ๋ ๋์ ์ฑ ์๋น์ค๋ฅผ ์๋์ผ๋ก ๋ค์ ์์ํ๊ฑฐ๋ ์ค์ง/์์ํด์ผ ํฉ๋๋ค.
๋์ผํ ๋ฌธ์ ๊ฐ ์ฌ๊ธฐ์ ์์ต๋๋ค. AzureRm์ ๋ช ๋ฌ ๋์ ์๋ํ๋ค๊ฐ ๊ฐ์๊ธฐ ์ค์ง๋์์ต๋๋ค. ๋ด ๋ง์ง๋ง ๋ฐฐํฌ๋ 2์ฃผ ์ 12์ 5์ผ์ด์๊ณ ์ง๊ธ์ 12์ 20์ผ์ Error_File_In_Use๋ฅผ ์์ฑํ๊ณ ์์ต๋๋ค. ์๋ ์์/์ ์ง๋ก ๋์๊ฐ์ผ ํ๋ ๊ฒ์ด ๋งค์ฐ ์ง์ฆ๋ฉ๋๋ค.
๋ค์์ CI/๋น๋ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ Powershell์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค. ๋์์ ์ฃผ์ @appveyor ๋ถ๋ค๊ป ํน๋ณํ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
$username = $env:deployusername
$password = $env:deploypassword
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$Headers = @{
'Authorization' = ('Basic {0}' -f $base64AuthInfo)
'If-Match' = '*'
}
$apiUrl = "https://YourAzureWebsite.scm.azurewebsites.net/api/vfs/site/wwwroot/app_offline.htm"
$filePath = "app_offline_tmp.htm"
Invoke-RestMethod -Uri $apiUrl -Headers $Headers -Method PUT -InFile $filePath -ContentType "multipart/form-data"
์ด๋ ๊ฒ ํ๋ฉด HTTP PUT
๋์๋ฌธ์๊ฐ ์ฌ๋ฐ๋ฅธ app_offline.htm
ํ์ผ์ Kudu REST API ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐฐํฌ์ ์๋ ํ์ผ์ ์ ๊ฑฐํ๋๋ก WebDeploy๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก ๋ฐฐํฌ์ ์ผ๋ถ๋ก ํ์ผ์ ์๋์ผ๋ก ์ ๊ฑฐํฉ๋๋ค. ์ด ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐฐํฌ๊ฐ ์๋ฃ๋ ํ ํ์ผ์ ์ ๊ฑฐํ๋ ค๋ฉด HTTP DELETE
๋ฅผ ์ฌ์ฉํ๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํด์ผ ํ ์ ์์ต๋๋ค.
AzureRM ์์ ์ ์ Trackyon Stop์ ์ถ๊ฐํ๊ณ ์ดํ์ Trackyon Start ์์ ์ ์ถ๊ฐํ๋ฉด ์ ์๋ํฉ๋๋ค. ์ด๊ฒ์ TakeAppOffline = true์ผ ๋ ํ์ํ์ง ์์ง๋ง ์๋ํ๋ฉฐ ์๋ ๋๋ ์คํฌ๋ฆฝํ ์ ๋ฐฉ์งํฉ๋๋ค. ๋ฆด๋ฆฌ์ค ์ ์์ ์์ ์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. Trackyon ๋จ๊ณ๋ ์ค์ ํ๊ธฐ ์ฝ์ต๋๋ค.
2016๋ 12์ 21์ผ ์ค์ 12์ 10๋ถ์ Chad T < [email protected] [email protected] >์ด(๊ฐ) ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋ค์์ CI/๋น๋ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ Powershell์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค. ๋์์ ์ฃผ์ @appveyor https://github.com/appveyor ์ฌ๋ฌ๋ถ๊ป ํน๋ณํ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
$ ์ฌ์ฉ์ ์ด๋ฆ = $ ํ๊ฒฝ:๋ฐฐํฌ ์ฌ์ฉ์ ์ด๋ฆ
$password = $ env:deploypassword
$base64AuthInfo = [๋ณํ]::ToBase64String([ํ
์คํธ.์ธ์ฝ๋ฉ]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$ํค๋ = @{
'์น์ธ' = ('๊ธฐ๋ณธ {0}' -f $base64AuthInfo)
'์ผ์นํ๋ ๊ฒฝ์ฐ' = '*'
}
$apiUrl = " https://YourAzureWebsite.scm.azurewebsites.net/api/vfs/site/wwwroot/app_offline.htm "
$filePath = "app_offline_tmp.htm"
Invoke-RestMethod -Uri $apiUrl -Headers $Headers -Method PUT -InFile $filePath -ContentType "multipart/form-data"
์ด๋ ๊ฒ ํ๋ฉด Kudu REST API https://github.com/projectkudu/kudu/wiki/REST-API ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฐ๋ฅด๊ฒ ๋์๋ฌธ์๊ฐ ์ง์ ๋ app_offline.htm ํ์ผ์ HTTP PUTํฉ๋๋ค. ๋ฐฐํฌ์ ์๋ ํ์ผ์ ์ ๊ฑฐํ๋๋ก WebDeploy๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก ๋ฐฐํฌ์ ์ผ๋ถ๋ก ํ์ผ์ ์๋์ผ๋ก ์ ๊ฑฐํฉ๋๋ค. ์ด ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐฐํฌ๊ฐ ์๋ฃ๋ ํ ํ์ผ์ ์ ๊ฑฐํ๋ ค๋ฉด HTTP DELETE๋ฅผ ์ฌ์ฉํ์ฌ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํด์ผ ํ ์ ์์ต๋๋ค.
-
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์
๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub https://github.com/aspnet/Home/issues/694#issuecomment-268436959 ์์ ํ์ธํ๊ฑฐ๋ https://github.com/notifications/unsubscribe-auth/AID9WoUdbuBnFoXR2K5o8AiUtks5nE9dRc ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ธ์.
์ด ๋ฉ์์ง๋ ๋น๊ณต๊ฐ์ด๋ฉฐ ํน๊ถ, ๋ ์ ๋๋ ๊ธฐ๋ฐ ์ ๋ณด๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์๋ชป ์์ ํ ๊ฒฝ์ฐ์๋ ์ฆ์ ๋ฐ์ ์ธ์๊ฒ ์๋ฆฌ๊ณ ์๋ณธ์ ๋ชจ๋ ์ญ์ ํ์ญ์์ค. ๊ทํ๊ฐ ์ด๋ฉ์ผ์ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๊ธ์ง๋์ด ์์ต๋๋ค. ์ด ๋ฉ์์ง ๋ด์ฉ์ ๋ฌด๋จ ๋ณต์ฌ, ์ ์ฅ, ์ฌ์ฉ ๋๋ ๊ณต๊ฐ๋ ํ์ฉ๋์ง ์์ผ๋ฉฐ ๋ถ๋ฒ์ผ ์ ์์ต๋๋ค. ํ์ง ๋ฒ๋ฅ ์์ ํ์ฉํ๋ ๊ฒฝ์ฐ ์ ๋ณด ๋ณด์ ๋ฐ Lithero ์ ์ฑ ๋ฐ ํด๋น ๋ฒ๋ฅ ์ ๋ด๋ถ ์ค์ ํ๊ฐ๋ฅผ ์ํด ๋น์ฌ ์์คํ ์์ Lithero์์ ์ ์ ํต์ ์ ๋ชจ๋ํฐ๋งํ๊ณ ์ค์บํ ์ ์์ต๋๋ค.
/ ์ฐธ์กฐ @davidebbo
์ฑ์ Azure ์ฑ ์ค์ ์์ MSDEPLOY_RENAME_LOCKED_FILES=1
๋ฅผ ์ค์ ํด ๋ณด์ธ์.
@davidebbo ์ด๊ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ด ์ธํ๋ฆฌ์ Azure ์ธก ๋ณ๊ฒฝ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ง์ ์ฌ๋๋ค(ํนํ aspnet slack ์ฑ๋์์)์ด ์ด ๋ฌธ์ ๋ฅผ ๋์์ ๊ฒช์์ต๋๋ค.
Azure์ ๋ณ๊ฒฝ ์ฌํญ์ TFS์ ํจ๊ป ์จ-ํ๋ ๋ฏธ์ค๊ฐ ํ์๋๋ ์ด์ ๋ฅผ ์ค๋ช ํ์ง ์์ต๋๋ค. ์์ด์ ํธ๊ฐ ์๋๊น์?
์ฐ๋ฆฌ๋ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์์ต๋๋ค. App_Offline.htm์ ์ ํ๋์ง ์์ต๋๋ค. ์ด์ํ๊ฒ๋ VS์์ ๋ฐฐํฌํ๋ฉด ์ ์๋ํฉ๋๋ค.
์ด์ํ๊ฒ๋ ์ฌ๊ธฐ์์ ์ค๋ช ํ ๋๋ก VS์์๋ ์๋ํ์ง ์์ต๋๋ค. #1883
์ฐ๋ฆฌ ํ์์๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ, ์ ๊ธด ํ์ผ๋ก ์ธํด ๋ฐฐํฌ๊ฐ ๊ฑฐ์ ์คํจํ ๋๋ง๋ค ๋ฐ์ํฉ๋๋ค. Azure์์ ๋ชจ๋ ์ฑ์ ๋ค์ ์์ํ๊ณ ๋ฐฐํฌ๋ฅผ ๋ค์ ์คํํด์ผ ํฉ๋๋ค. Octopus Deploy๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ ํ์ ์ค๋ ์์นจ์ ์ด ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. Microsoft ํ์ ์๊ฒฌ์ด ์์ผ์ญ๋๊น? ๋ฆด๋ฆฌ์ค ํ์ดํ๋ผ์ธ์ ์์ฐ์ฑ์ ๋งค์ฐ ์ค์ํ๋ฉฐ ์ด๋ ํ๋ก๋์ ์ฌ์ดํธ๋ก์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐฉ์งํฉ๋๋ค. ๊ฐ์ฌ ํด์!
@bmoscao - app_offline.html์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
์ด ๋ฌธ์ ๋ Azure์์๋ ๋ํ๋ฉ๋๋ค. ๋ด๊ฐ ๋ง์ง๋ง๊น์ง ๊ทธ๊ฒ์ ์ผ๊ธฐํ ๊ฒ์ ์๋ฌด ๊ฒ๋ ์๋ค.
์ ๋ ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฌธ์ ๋ EnableMSDeployAppOffline
๊ฐ true
๋ก ์ค์ ๋๊ณ ํ๋ก์ ํธ ์ถ๋ ฅ์ Visual Studio์์ ์คํ๋๋ ๋ช
๋ น์ ์ผ๋ถ๋ก -enablerule:AppOffline
๊ฐ ํ์๋๋ค๋ ๊ฒ์
๋๋ค. ์ด๋ป๊ฒ ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค... ์ต๊ทผ์์ผ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
์ด์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฑ ํ์ ์ค์งํ๊ณ ๋ฐฐํฌํ ๋ค์ ์ฑ ํ์ ๋ค์ ์์ํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๋ฅผ ์ํด Release Manager์ ์ธ๋ผ์ธ powershell ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ค์ง:
param( [string]$webApp, [string]$subscriptionName, [string]$resourcegroupName );
Select-AzureRmSubscription -SubscriptionName $subscriptionName;
Stop-AzureRmWebapp -Name $webApp -ResourceGroupName $resourcegroupName
์์:
param( [string]$webApp, [string]$subscriptionName, [string]$resourcegroupName );
Select-AzureRmSubscription -SubscriptionName $subscriptionName;
Start-AzureRmWebapp -Name $webApp -ResourceGroupName $resourcegroupName
RM Azure ๋ฐฐํฌ ๋จ๊ณ์์ appOffline ๊ท์น์ ํ์ฑํํ๋ ๊ฒ๋ง์ผ๋ก๋ ํ๋ฅญํ๊ฒ ์๋ํ๋ Microsoft์ ์๊ฒฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@davidebbo ์ฐ๋ฆฌ๋ ์ฌ๋กฏ์ด ์๋ ASP.NET Core, VSTS ๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ์ ๋ฐ AzureRmWebApp์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
@davidebbo ๊ฐ์ฌํฉ๋๋ค! ๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค ;)
์ฐ๋ฆฌ์๊ฒ๋ ๋ฐ์ - Azure์ msdeploy. ๋์์ ๋ง์ ์ฌ๋๋ค์ ์ํด ์ ๋น๋กญ๊ฒ ์์๋์๋ค๋ ๊ฒ์ ์๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค. ์ฐ๋ฆฌ๋ฟ๋ง ์๋๋ผ ์ ๋ฐ์ ์ผ๋ก ์์ฌํ ์ ์์ต๋๋ค!
๋๋ MS์ ์ฌ๋๋ค์ด ์ด์ ๋ํ ํ์ธ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์๋ง๋ ๊ทธ๋ค์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์ ์๊ณ ์์ ๊ฒ์ ๋๋ค. ์ด์จ๋ ์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. VSTS์์ ๋ฐฐํฌํ๊ณ 12์ ์ด์ ์๋์ ์ค์งํ์ต๋๋ค. ํ์ฌ trackyon ์์ ์ ์ฌ์ฉํ์ฌ ์ค์ง/์์ํ๊ณ ์์ต๋๋ค.
์ด ์ค๋ ๋๋ฅผ ์ดํด๋ณด๋ฉด ๊ฐ ํญ๋ชฉ์ ๋ํด ํญ์ ๋ช ํํ์ง ์์ต๋๋ค.
MSDEPLOY_RENAME_LOCKED_FILES
์๋ ์ฌ๋ถ. ๋ค์ ๋งํ์ง๋ง, ๋ช๋ช ์ฌ๋๋ค์ ๊ทธ๊ฒ์ผ๋ก ์ฑ๊ณตํ ๊ฒ ๊ฐ์ต๋๋ค.์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋๋ฆฌ์ค๊ฐ ๋ฌด์์ธ์ง, ๋ฌด์์ ์๋ํ๋์ง ๋งค์ฐ ๋ช ํํ๊ฒ ์๋ ค์ฃผ์๋ฉด ์ ํฌ๊ฐ ์ดํดํ ์ ์์ต๋๋ค. ๊ฐ์ฌ ํด์!
@davidebbo
Visual Studio/MSBuild๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ๋ ค๊ณ ํ๋ฉด ERROR_FILE_IN_USE ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์์ ์ ์๋ฒ์ App_Offline.htm ํ์ผ์ ์์ฑํ์ง๋ง ์ฑ์ ์ค๋จํ์ง๋ ์์ต๋๋ค.
Web Deploy๋ฅผ ์ฌ์ฉํ์ฌ app_offline.htm ํ์ผ์ ์์ฑํ๋ฉด ์ฑ์ด ๋ค์ด๋ฉ๋๋ค.
์ด๊ฒ์ ๋ด ์ค์ ์ ๋๋ค.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_SavePWD>False</_SavePWD>
<ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<DeployIisAppPath>...</DeployIisAppPath>
<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<EnvironmentName>Production</EnvironmentName>
<ExcludeApp_Data>False</ExcludeApp_Data>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<MSDeployServiceURL>...</MSDeployServiceURL>
<PublishFramework>netcoreapp1.1</PublishFramework>
<PublishRuntime>win81-x64</PublishRuntime>
<RemoteSitePhysicalPath />
<SiteUrlToLaunchAfterPublish />
<SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
<UsePowerShell>True</UsePowerShell>
<UserName>...</UserName>
<WebPublishMethod>MSDeploy</WebPublishMethod>
</PropertyGroup>
</Project>
@davidebbo
๋น์ทํ ์ค๋ ๋์์ ์ด ์ค๋ฅ์ ๋ํด ์ธ๊ธํ์ผ๋ฉฐ ์ฌ๋ฐฐํฌํ ๋๋ง๋ค Azure ์น ์ฑ์ ์ค์งํ๋ค๊ฐ ๋ค์ ์์ํด์ผ ํ์ต๋๋ค(๊ฐ๋ฐ ํ๊ฒฝ์์๋ง). ์ด๋ฒ ์ฃผ ์ด์ ์๋ ์ด ์์ ์ ์ํํ ํ์๊ฐ ์์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ ํ๋ฆฟ์์ ์์ ์์ด Visual Studio 2015 .net ํต์ฌ ์น ์ฑ์ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋ก์ปฌ ํธ์คํธ์์ ์น ์ฑ์ ์คํํ๋๋ฐ ์ ํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
๋ด Azure Web App Service ๊ณํ์ ์ ์ฑ์ ๊ฒ์ํ๋ฉด ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ๋ธ๋ผ์ฐ์ ๋ ์ฆ์ ์ฌ์ดํธ๋ฅผ ๋ฌธ์ ์์ด ๋ถ๋ฌ์ต๋๋ค.
Azure Dashboard๋ฅผ ํ์ธํ๋๋ฐ ์ ํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ฝ๋ ๋๋ ์ค์ ์ ์์ ํ์ง ์๊ณ ์น ์ฑ์ ๋ค์ ๊ฒ์ํ์ผ๋ฉฐ ๋ค์ ์ค๋ฅ๊ฐ ๋ํ๋ฉ๋๋ค.
๊ทธ๋๋ถํฐ ์น ์ฑ์ ์ค์งํ๊ณ Azure์ ๊ฒ์ํ ๋ค์ ์น ์ฑ์ ์์ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ ์ ๋์๊ฒ ์ผ์ด๋ ์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ Microsoft ํ ํ๋ฆฟ์ ๋งค์ฐ ๊ฐ๋จํ ๋ฐฐํฌ์ ๋๋ค.
์ด ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ๊ธฐ๋กํ๊ณ Microsoft 2015 VS ํผ๋๋ฐฑ ์์คํ ๋ด์์ ํด๋น ํผ๋๋ฐฑ์ ๋ณด๋์ต๋๋ค. ๊ทธ ๋ น์์ ์ฐพ์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์๋๋ฉด ๋ค์ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ถ ํผํฐ
@davidebbo
๋ฌธ์ ๊ฐ Azure App Service ๋๋ ์ผ๋ถ ๋ค๋ฅธ ํธ์คํ ์ ์ฐธ์กฐํ๋์ง ์ฌ๋ถ
์ ์ ์ฑ ์๋น์ค.
์ฌ๋๋ค์ด ์์์ ๋ ผ์ํ ๋๋ก app_offline ๋์๋ฌธ์๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ์๋ํ๋์ง ์ฌ๋ถ. ์ฌ๋ฌ ์ฌ๋๋ค์ด ๊ทธ๊ณณ์์ ์ฑ๊ณตํ๋ค๊ณ ๋ณด๊ณ ํ ๊ฒ ๊ฐ์ต๋๋ค.
App_Offline์ app_offline์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. ์ด ํ์ผ์ ๋ฌธ์ ์ ํต์ฌ์ธ ๋ฐฐํฌ์ ์ผ๋ถ๋ก 'App_Offline' ๋์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ webdeploy๋ฅผ ํตํด ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค.
@davidebbo
@ctolkien๊ณผ ์ ํํ ๋์ผํฉ๋๋ค.
@davidebbo
๋ฌธ์ ๊ฐ Azure App Service ๋๋ ์ผ๋ถ ๋ค๋ฅธ ํธ์คํ ์ ์ฐธ์กฐํ๋์ง ์ฌ๋ถ
์ ๊ฒฝ์ฐ์๋ Azure App Service์ ๋ฐฐํฌํ๊ณ ์์ต๋๋ค. ๋ค๋ฅธ ํธ์คํ ์ ๋ํด ์ ๋ชจ๋ฆ ๋๋ค.
์ฌ๋๋ค์ด ์์์ ๋ ผ์ํ ๋๋ก app_offline ๋์๋ฌธ์๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ์๋ํ๋์ง ์ฌ๋ถ. ์ฌ๋ฌ ์ฌ๋๋ค์ด ๊ทธ๊ณณ์์ ์ฑ๊ณตํ๋ค๊ณ ๋ณด๊ณ ํ ๊ฒ ๊ฐ์ต๋๋ค.
VSTS(https://aka.ms/azurermwebdeployreadme)์์ "AzureRM Web App ๋ฐฐํฌ" ์์
์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. "์น ๋ฐฐํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์" <- ์ ํํ๊ณ "์ฑ ์คํ๋ผ์ธ์ผ๋ก ์ ํ" <- ์ด๋ค ๊ฒ์ด ์๋ํ๋์ง ํ์ธํ๊ณ ์ด๋๊ฐ์์ ๋ณ๊ฒฝ๋์ด ์๋์ด ์ค์ง๋ ๋๊น์ง ์ต์
์ด ์์ต๋๋ค.
"info" ํดํ์ "app_offline.htm"์ ์๋ฌธ์ "a"๋ก ๋ฐฐ์นํ๋ ๊ฒ์ ๋ํด ๋ช
์์ ์ผ๋ก ์๋ ค์ค๋๋ค.
์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด๋ฏธ ์๋ฌธ์์ฌ์ผ ํฉ๋๋ค.
MSDEPLOY_RENAME_LOCKED_FILES๊ฐ ์๋๋์๋์ง ์ฌ๋ถ. ๋ค์ ๋งํ์ง๋ง, ๋ช๋ช ์ฌ๋๋ค์ ๊ทธ๊ฒ์ผ๋ก ์ฑ๊ณตํ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ํ์ง ์์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ ๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ ์ ๊ธด ํ์ผ ๋ด์ฉ์ ๋ณ๊ฒฝํ๋ ๋์ ์ฑ์ ์คํ๋ผ์ธ์ผ๋ก ์ ํํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ๋ฐ๋ผ์ ์ฃผ์ ๋ฌธ์ ๋ app_offline.htm
์ ๋์๋ฌธ์์ ๊ด๋ จ์ด ์์ผ๋ฉฐ Azure App Service(๋ด๊ฐ ์ํ ์ชฝ)์ ๊ด๋ จ๋ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ด ๋ถ๋ช
ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ https://github.com/aspnet/AspNetCoreModule/issues/50์์ ์ถ์ ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋ซ๊ณ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Azure Web App์ ๋ถ๋ถ์ ์ผ๋ก ์ฑ ์์ด ์๋ค๊ณ ์๊ฐํ ์ด์ ๊ฐ ์๋ ํ(Azure ์ธ๋ถ์์ ๋์ผํ ๋ณด๊ณ ๋ฅผ @fabiano ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฐ๋ฅ์ฑ์ด ์์) ASP.NET ์ ๋ฌธ๊ฐ๊ฐ ๊ฑฐ๊ธฐ์์ ๊ฐ์ ธ๊ฐ ์ ์๋๋ก ํ๊ฒ ์ต๋๋ค.
์ค์ ๋ก ์ด๊ฒ์ app_offline.html ๋์ App_Offline.html์ ๋ง๋ค๊ธฐ ์์ํ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๋๊ตฌ์ ํ๊ท์ฒ๋ผ ๋ณด์ ๋๋ค. @mlorbetske , @vijayrkn - ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ ์ ์์ต๋๊น?
์ฝ์ด ๋ฐํ์(AspNetCoreModule)์ด ํญ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง๋ง VS๊ฐ ์ผ์นํ๋ ๋์๋ฌธ์๋ฅผ ์ฌ์ฉํ๊ณ ์์๊ณ ์ง๊ธ์ ๊ทธ๋ ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์์๋ค๋ ๋ง์์ด์ ๊ฐ์?
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ฐํ์์ ์ฌ๊ธฐ์์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์์ผ ํ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ ๊ฐ์ง ๊ฐ๋ฅํ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค.
@davidebbo - ๋ง์ต๋๋ค. ๋๋ AspNetCoreModule์ด ํญ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
@davidebbo
Azure App Service์ ๊ด๋ จ๋ ๊ฒ์ด ์๋๋๋ค(๋ด๊ฐ ์ํ ์ชฝ).
๋ ผ์์ Azure AppService๋ฅผ ๋์ ํ ์ด์ ๋ ์ฐ๋ฆฌ๋ฅผ ๋์ ํ์ฌ ๋ณ๊ฒฝํ์ง ์๊ณ ์ผ์ด ์คํจํ๊ธฐ ์์ํ๊ณ ํจํค์ง ๋ฒ์ ์ ๋ณ๊ฒฝํ์ง ์์๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ANCM ๊ฐ์ ํ์ด App Services์์ ๊ฐ์ ๋์์ต๋๊น?
@ctolkien ๋ค, ์ ๋ง ์ ๋ฐ์ดํธ ๋ ๊ฒ ๊ฐ์์. ๋ฐ๋ผ์ ์์ ๊ฒฐ๋ก ์ด ์ณ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค. ๋์ ์๋ก์ด ์ด๋ก ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
App_Offline.htm
์
๋๋ค.@moozzyk ๊ทธ๊ฒ์ด ๊ฐ๋ฅ์ฑ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น, ์๋๋ฉด ํญ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ค๊ณ ํ์ ํ์ญ๋๊น?
@moozzyk @davidebbo - app_offline ์ผ์ด์ฑ์ ๋ํ VS ๋๊ตฌ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค. VS ๋๊ตฌ๋ appoffline ๊ท์น(-enablerule:AppOffline)์ ์ฌ์ฉํ์ฌ msdeploy๋ฅผ ํธ์ถํ๊ณ msdeploy๋ App_Offline.htm์ ์ญ์ ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ ANCM์ ๋์ ๋ณ๊ฒฝ์ฒ๋ผ ๋ณด์ ๋๋ค. ์ฒซ ๋ฒ์งธ ์ฃผ์์ ๋ฐ๋ฅด๋ฉด app_offline์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์์ผ ํฉ๋๋ค(https://github.com/aspnet/IISIntegration/issues/81).
@ctolkien
App_Offline์ app_offline์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
์ด๊ฑฐ ์ด๋์ ๋ฐ๊พธ๋์? Visual Studio์์ Azure๋ก ์ง์ MSDEPLOY๋ฅผ ์ํํฉ๋๋ค.
@oyvindvol
์ด๊ฑฐ ์ด๋์ ๋ฐ๊พธ๋์? Visual Studio์์ Azure๋ก ์ง์ MSDEPLOY๋ฅผ ์ํํฉ๋๋ค.
๋ด๊ฐ ์๋ ํ MSDEPLOY์์ App_Offline
์ ๋/์๋ฌธ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ง๊ธ์ ์๋ฃจ์
์ ์ฌ์ฉ์ ์ง์ ์คํฌ๋ฆฝํ
ํด์ผ ํฉ๋๋ค. ์์ ๊ฒ์ํ powershell ์คํฌ๋ฆฝํธ๋ฅผ ์์์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ชจ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์์ ์ด๋ก ์ด ์ณ๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ๋์๋ฌธ์ ๊ตฌ๋ถ ๋ฒ๊ทธ๋ ANCM์ ์ต์ ๋ฒ์ ์์ ํ๊ท์ด๊ณ ํด๋น ๋ฒ์ ์ 12์์ Azure App Service์ ๋ฐฐํฌ๋์ด ์ฌ์ฉ์๊ฐ ๊ฐ์๊ธฐ ์ด ๋ฌธ์ ์ ๋ถ๋ช์ณค์ต๋๋ค.
๊ณํ์ ASP.NET Core ํ์์ ANCM ์์ ์ฌํญ์ ๊ฐ์ ธ์ App Service์ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค. ETA๋ ์์ง ์์ง๋ง 1์์ ์์ ๊ฒ์ ๋๋ค.
๊ฐ์ฌ ํด์!
@davidebbo ANCM ์ ๋ค์ด๋ก๋ํ์ฌ iis๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ์๋ฒ์ ์ค์นํ๊ณ ์ด ํน์ ๋ฒ๊ทธ๋ ์ก์ ์ ์์ต๋๊น?
@Pictuel ๊ทธ๋ ๊ฒ ์๊ฐํฉ๋๋ค. ์ฌ๊ธฐ์์ ๋ด ๊ฐ๋๋ ์๋ฐํ ๋งํ๋ฉด Azure App Service์ด๋ฏ๋ก Core ํ์ด Azure๊ฐ ์๋ ์๋๋ฆฌ์ค์ ๋ํด ๋ ผํํ๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค :)
@Pictuel ์, ANCM์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ํฌํจ๋ .NET Core์ฉ Windows ํธ์คํ ์ค์น ํ๋ก๊ทธ๋จ์ ์ ๋ฐ์ดํธ๋ ๋ฒ์ ์ด ์ถ์๋๋๋ก ํ๊ฒ ์ต๋๋ค.
@shirhatti
@shirhatti ์ ๋ฐ์ดํธ๋ ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋งํฌ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ ๋ ์ฌ๊ธฐ์์ ๋ชจ๋ํฐ๋ง ์ค์ ๋๋ค.
ํด๋น ์ค๋ ๋๋ฅผ ์ดํด๋ณธ ํ App Services์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ ํํ ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฑ ์ค์ ์ ๋๊น, ์๋๋ฉด ์ฌ์ฉ์ ์ ์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น, ์๋๋ฉด ์ฌ์ดํธ๋ฅผ ์ค์งํ๊ณ ์์ํฉ๋๊น?
์ฑ ์ค์ ์ธ ๊ฒฝ์ฐ ์น ์ฌ์ดํธ๊ฐ ์ DLL์ ์ ํํ์ง ๋ชปํ๊ฒ ํ๋ค๋ ๋ค๋ฅธ ์๊ฒฌ์ ์ฝ์์ต๋๋ค.
๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ANCM(https://github.com/aspnet/AspNetCoreModule/issues/50)์์ ์ ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ ์ ์์ ๋๊น์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ฑ ์๋น์ค๋ Azure ํ์์ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
App Service์์ @dtmnash here ์์ ์ค๋ช ํ ๋๋ก ์ฑ์ ์ค์ง/์์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@davidebbo "๊ณํ์ ASP.NET Core ํ์์ ANCM ์์ ์ฌํญ์ ๊ฐ์ ธ์ App Service์ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค. ์์ง ETA๋ ์์ง๋ง 1์ ์ค ์ธ์ ๊ฐ๋ ์ด๋ฃจ์ด์ง ๊ฒ์ ๋๋ค." -- ETA๊ฐ ์ค๋น๋๋ฉด ์๋ ค์ฃผ์ธ์ :)
์ ์ ๋ฐฐ์น ETA๋ 24์ผ์์ 30์ผ ์ฌ์ด์ ๋๋ค. ๋ฐฐํฌ๋ ์ฌ๋ฌ ํ์ฅ ๋จ์์ ๊ฑธ์ณ ์ ์ง์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ฏ๋ก ๋ชจ๋ ์ฌ๋์ด ์ ํํ ๋์์ ์์ ์ฌํญ์ ์ป์ง๋ ๋ชปํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ์ด์ ๋ง ์๋ํ๊ธฐ ์์ํ์ต๋๋ค :-)
๋์๊ฒ ์ฌ์ ํ ๋ฌธ์ :(
@hbunjes ํ์ธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@rsnj ์ผ์ ๊ธฐ๊ฐ ๋์ ์ ์ง์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค. ์ด ๋ชจ๋ ์์ ์ ์๋ง๊น์ง ์๋ฃ๋์ด์ผ ํฉ๋๋ค(๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋ ํ).
@davidebbo ๋ฐฐํฌ๋ ์ผ๋ถ ๋ด ์ฑ์์ ์๋ํ์ง๋ง ์ ๋ถ๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ํ ์ ์ ์ผ๋ถ ๋ฐฐํฌ๋ ์คํจํ์ง๋ง ๋ค๋ฅธ ๋ฐฐํฌ๋ ๋์ผํ App Service ๊ณํ์์ ์คํ๋๋ ์ฑ์ ๋ํด ์คํจํ๋ค๋ ๊ฒ์ ๋๋ค. ํน์ ์น ์ฑ์ ๋ํด ์ด๋ค ๋ฒ์ ์ ANCM์ด ์คํ๋๊ณ ์๋์ง ํ์ธํ ์ ์์ต๋๊น?
@henningst ํ์ธ ๋ฐฉ๋ฒ์ https://github.com/aspnet/AspNetCoreModule/issues/50#issuecomment -271381892๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด์ ์ ๋ฅผ ์ํด ์ผํ์ง ์์์ง๋ง ์ง๊ธ์ ๋๋ค. @davidebbo ๊ฐ์ฌํฉ๋๋ค!
๊ทธ๊ฒ์ ๋์๊ฒ๋ ํจ๊ณผ๊ฐ ์๊ธฐ ์์ํ์ต๋๋ค. ๊ฐ์ฌ ํด์!
์, ์ด์ ๋ฐฐํฌ๊ฐ ์๋ฃ๋์์ผ๋ฏ๋ก ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์์๋ ๋์๊ฒ ๋ชจ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ง๊ธ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ 1๋ ์ด์์ด ๊ฑธ๋ ธ์ต๋๋ค. ๋ฐฐํฌ ๋ฌธ์ ๊ฐ ๋ ๋์ ์ฐ์ ์์๋ฅผ ์ฐจ์งํ ์ ์์ต๋๋ค.
๋น Azure์ ๋ํด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
@pekkah ๋ณ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฒช์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ์ฅ ์ต๊ทผ ๊ฒ์ 1๋ ๋ณด๋ค ํจ์ฌ ๋ ์ต๊ทผ์ ๊ฒ์ ๋๋ค.
Azure๊ฐ ์๋ ๊ฒฝ์ฐ @jdshkolnik , ์ ANCM์ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉด ๋ฉ๋๋ค.
@jdshkolnik
์
๋ฐ์ดํธ๋ https://www.microsoft.com/net/download/core#/runtime ์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
๋ค์ด๋ก๋ ๋ฐ๋ก ๊ฐ๊ธฐ ์
๋๋ค.
@shirhatti ์ด๊ฒ์ ์ค์นํ์ง๋ง ์ฌ์ ํ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ธ๋ผ์ง ๋จ๋ถ ์ํ์ธ๋ฃจ์์ ์ฌ์ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@jdshkolnik PowerShell์์ ์ด๊ฒ์ ์คํํ๋ฉด ์ด๋ค ๋ฒ์ ์ด ๋ณด์ด๋์?
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Windows\System32\inetsrv\aspnetcore.dll").FileVersion
@shirhatti 7.1.1971.0
์ ๋ฐ์ดํธ : ์ฃ์กํฉ๋๋ค. ์ ์๋ชป์ ๋๋ค. ๋ฆด๋ฆฌ์ค ์ ์๊ฐ ์๋ ๊ธฐ์กด ๋ฆด๋ฆฌ์ค์ ๋ฐฐํฌ ๋จ๊ณ๋ฅผ ๊ฒํ ํ๊ณ ์ ๋ฐ์ดํธํ์ต๋๋ค. ์ด ์ง์ ๋ช ๋ฒ์ด๋ ํ๋์ง ์ธ์ด๋ณด์ง๋ ์์์ด...
๋ด ๋ฒ์ ์ aspnetcore.dll์ด ์์ ๋์๋ค๊ณ ํด๋ ๋ฐฐํฌ๋ฅผ ์๋ํ ๋๋ง๋ค ์ด ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
aspnetcore.dll ๋ฒ์ : 7.1.1971.0
๋ฐฐํฌ : VSTS ์์
Azure App Service Deploy v3.*(๋ฏธ๋ฆฌ ๋ณด๊ธฐ)
์ฑ์ ์คํ๋ผ์ธ์ผ๋ก ์ ํ : ์ ํ๋จ
๋์์์ ์ถ๊ฐ ํ์ผ ์ ๊ฑฐ : ์ ํ๋จ
์ ๊ธด ํ์ผ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ : ์ ํ
MSDEPLOY_RENAME_LOCKED_FILES ์ฑ ์ค์ : ์ถ๊ฐ๋์ง ์์
์ด ๋จ๊ณ์์๋ ์ด๊ฒ์ด ์๋ํ๊ธฐ ์ํด ์ด๋ค ์ค์ ์ด ํ์ํ๊ฑฐ๋ ํ์ํ์ง ์์์ง ๋ช
ํํ์ง ์์ต๋๋ค.
์ด์ azure ์ฑ ์๋น์ค์์ ์ฒซ ๋ฒ์งธ ํ์ผ ์ฌ์ฉ ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํ์ต๋๋ค.
2017-02-14T22:41:10.4400186ZC:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe - ์์ค:IisApp= 'D:/a/r1/a/Ascend Ammo Portal/drop/apps /artifacts/AmmoPortal' - ๋์:IisApp= 'core-asyoz77ajoed4/ammo-preview',ComputerName=' https://core-asyoz77ajoed4.scm.azurewebsites.net/msdeploy.axd?site=core-asyoz77ajoedview4/ammo - ',UserName='$core-asyoz77ajoed4',Password=' * * ',IncludeAcls='False',AuthType='๊ธฐ๋ณธ' - verb:sync -retryAttempts=20 -verbose -e nablerule:AppOffline
2017-02-14T22:41:34.3837386Z ์ค๋ฅ ์ฝ๋: ERROR_FILE_IN_USE
2017-02-14T22:41:34.3837386Z ์ถ๊ฐ ์ ๋ณด: Web Deploy๋ ์ธ๋ถ ํ๋ก์ธ์ค์ ์ํด ์ ๊ฒจ ์๊ธฐ ๋๋ฌธ์ ๋์์์ 'Ascend.Ammo.Portal.exe' ํ์ผ์ ์์ ํ ์ ์์ต๋๋ค. ๊ฒ์ ์์ ์ด ์ฑ๊ณตํ๋ ค๋ฉด ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ํ์ฌ ์ ๊ธ์ ํด์ ํ๊ฑฐ๋ ๋ค์ ๊ฒ์ ์๋์์ .Net ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด AppOffline ๊ท์น ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํด์ผ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE๋ฅผ ์ฐธ์กฐํ์ธ์.
2017-02-14T22:41:34.3837386Z ์ค๋ฅ ๊ฐ์: 1.
์ฐธ๊ณ : ๋ฌธ์๊ฐ ์ด์ ๋ฒ์ (*.1970)์ ์ค์น ํ๋ก๊ทธ๋จ์ ๋งํฌ๋ ๊ฒ ๊ฐ์ต๋๋ค. https://docs.microsoft.com/en-us/aspnet/core/publishing/iis#install -the-net-core- Windows-์๋ฒ-ํธ์คํ -๋ฒ๋ค.
๋ํ ๋ฐํ์ ๋ค์ด๋ก๋ ํ์ด์ง ์์ LTS ๋ฒ์ ์๋ง ์์ ์ฌํญ์ด ์๋ ๊ฒ ๊ฐ์ต๋๊น?
@shirhatti ~์ ํธ์คํ ๋ฒ๋ค ์ค์น ํ๋ก๊ทธ๋จ ๋งํฌ๊ฐ ์ค๋น๋๋ฉด ์๋ ค์ฃผ์ญ์์ค. ๋ฌธ์๋ก ๋ณด๋ด๊ฒ ์ต๋๋ค(๋ช ๊ตฐ๋ฐ์ ์์).~
~์ด๊ฑฐ: https://go.microsoft.com/fwlink/?linkid=837808 ... ๊ทธ๊ฑด aka.ms ๋งํฌ๊ฐ ์๋๋๋ค.~
fwlink๊ฐ ์ ์์ธ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด https://github.com/aspnet/Docs/pull/2773 ์ ์ค์ ํ์ต๋๋ค.
Visual Studio์์๋ ๋ฐ์ํ๋ฉฐ ์ต์ ์์ ๋ณผ ์ ์๋ฏ์ด ์ฑ ์คํ๋ผ์ธ ๊ท์น์ด ์์ต๋๋ค.
@davidebbo ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋์ง ํ์ธํ ์ ์์ต๋๊น? ์์ง๋ ์น๊ณ ์๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ๋ง์ด ๋ฃ์ต๋๋ค. ๋๊ตฌ์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ์ ์ด์ ๋ํ ์์ ์ฌํญ์ด ์์ต๋๊น? ์๋๋ฉด ์ฌ์ ํ ํธ์คํ ๋ฌธ์ ์ ๋๊น?
๋๋ ๋ํ ๊ทธ๊ฒ์ด ์ ๊ทธ๋ฆฌ๊ณ ์ธ์ ์ผ์ด๋๋์ง ์์ ๋ด๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ํ๋ก์ธ์ค๊ฐ scm ์ฌ์ดํธ์ ํ๋ก์ธ์ค ํ์๊ธฐ์์ ์คํ ์ค์ด๊ณ ์ ์์ ์ผ๋ก ๊ฒ์๋์์์ ๊ฑฐ์ ํ์ธํ์ต๋๋ค.
๋ฌธ์ ๊ฐ ์ด์ project.json ๋๊ตฌ์ ๊ด๋ จ์ด ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ๋ด ์ฌ์ดํธ๋ฅผ ์ต์ ๋๊ตฌ๋ก ์ ๋ฐ์ดํธํ๋ ๊ณผ์ ์ ์์ต๋๋ค.
์์ ์ฌํญ์ ์ผ๋ง ์ ์ Azure App Service์ ๋ฐฐํฌ๋์์ผ๋ฉฐ ์ดํ์๋ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ํ์๋๋ ์ฌ๋์ ์์ง ๋ชปํฉ๋๋ค. ๋ฌผ๋ก ๋น Azure ํธ์คํธ์ ์ฌ์ฉ์๋ ์ ๋ฐ์ดํธ๋์ง ์์ ๊ฒฝ์ฐ ๊ณ์ ๋ณผ ์ ์์ต๋๋ค.
Azure์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ํ ์คํธํ์ธ์.
app_offline.htm
ํ์ผ์ ์๋์ผ๋ก ์์ฑ(์: touch app_offline.htm
์คํ)์ข ๋ ํ ์คํธํด ๋ณด๊ฒ ์ต๋๋ค. ๋ช ๊ฐ์ ๊ฒ์๋ฌผ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ณด์์ต๋๊น? ํ์ผ์ด ์ฌ์ฉ ์ค์ด๊ณ ์คํ๋ผ์ธ์์ ์ฑ์ ์ฌ์ฉํ๊ณ ์์์ ๋ถ๋ช ํ ๋ณด์ฌ์ค๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๋น์ ์ด ์์ฒญํ๋๋ก ํ ์คํธ ํ ๊ฒ์ ๋๋ค.
๋ํ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ๋ ํ์ฅ + ์ฑ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ง ์ ์ ์์ต๋๋ค.
@pksorensen ์ด '์๋์ผ๋ก' ์ํํ๋ฉด WebDeploy๊ฐ ์ํํ ์ ์๋ ๋ชจ๋ ์์
์์ ๊ฒฉ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ฆ, ๋จ์ํ app_offline.htm
๋ฅผ ์ญ์ ํด๋ ํ๋ก์ธ์ค๊ฐ ์ค์ง๋์ง ์์ผ๋ฉด WebDeploy์ ์ํด ๋ฐ์ํ์ง ์์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ์ ๋ง๋ก ์๊ณ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก dotnet.exe ํ๋ก์ธ์ค๋ก ๋๋๋ ๋ฐ๋ฉด ๊ทํ์ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ exe ์ด๋ฆ์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ๋ ๋ฌธ์ ์ ๊ด๋ จ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ app_offline.htm์ ํฐ์นํ์ง๋ง ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์ง๋ ์์์ต๋๋ค.
dotnet.exe๊ฐ ๋ณด์ด์ง ์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ๋ญ๊ฐ ์๋ชปํ๊ณ ์์ต๋๊น?
dotnet/ANCM ์ ๋ฌธ๊ฐ๋ค์ด ๊ทธ ๋ถ๋ถ์ ๋ํด ๋ ผํํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํต์ฌ ASP.NET ์ฑ์ ๋ฐฐํฌํ ๋ dotnet.exe๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ ๋ ๋ฆฝ ์คํํ ๋ฐฐํฌ(๋๋ ๋ฌด์์ด๋ ํธ์ถ)๋ฅผ ์ฌ์ฉํ ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ANCM ๋ฐ app_offline.htm์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@DamianEdwards ๋๊ฐ ์ด์ ๋ํด ๊ฐ์ฅ ์ ์ค๋ช ํ ์ ์์ต๋๊น?
๋๋ ๋ฐฐํฌ ์ฌ๋กฏ์ ์ฌ์ฉํ์ฌ ๊ทธ ๋ฌธ์ ๋ฅผ ํผํฉ๋๋ค. 100% ์๋ํฉ๋๋ค. ํ์ผ์ ๋ณต์ฌํ๊ธฐ ์ ์ ์ฌ๋กฏ์ ์ค์งํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ๋ชจ๋ ๊ฒ์ด ์ ๊ฑฐ๋๋ฏ๋ก ๋ณต์ฌ๋ณธ์ด ์ ๊ธด ํ์ผ์ด ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฌ๋กฏ์ ์์ํ๊ณ ํ๋ก๋์ ์ผ๋ก ์ ํํฉ๋๋ค. ๊ณ ๊ฐ์ด ์ฑ ์คํ๋ผ์ธ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค๋ ์ด์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๊ฐ๋ ์ค์ง ์๊ฐ์ด 0์ ๋๋ค.
http://donovanbrown.com/post/MicrosoftCodeAnalysisCSharpdll-Locked-Problem-Fix
@DarqueWarrior ์ฌ๋กฏ์ ๋ฌผ๋ก ์๋ํ์ง๋ง(๋ค๋ฅธ ์ด์ ๋ก ์ฌ์ฉํ๊ธฐ์ ์ข์ต๋๋ค), ์ด ์ค๋ ๋์ ํต์ฌ์ ์ app_offline์ด @pksorensen๊ณผ ๊ฐ์ ์ผ๋ถ ์ฌ๋๋ค์ Core ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ๋ฐ ๋นํจ์จ์ ์ผ๋ก ๋ํ๋๋์ง ์ดํดํ๋ ๊ฒ์ ๋๋ค. Core ํ์์ ์ด์ ๋ํด ์ธ๊ธํด ์ฃผ์ จ์ผ๋ฉด ํฉ๋๋ค.
@davidebbo ์ด์ ์ง๋ฌธ์ ๋ตํ๊ธฐ ์ํด ํด๋์ฉ ๋ ๋ ๋ฆฝ ์คํํ์ app_offline ๋์๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ฑ ์คํ๋ผ์ธ ํ์ผ์ w3wp.exe(ASP.NET Core ๋ชจ๋์ ์ํด)์ ์ํด ๋ชจ๋ํฐ๋ง๋ฉ๋๋ค.
@DarqueWarrior ์กฐ์ธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ ๊ฐ์ง ์๊ฒฌ์ ๋๋ค. ๋์ผํ ์ฑ ์๋น์ค์ ๊ฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ค ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ์ฌ๋กฏ(์ ๊ธฐ์ต์ด ๋ง๋ค๋ฉด)์ด ๋ชจ๋ ์ฌ์ดํธ์์ ์๋ํ๋ฏ๋ก ์ด์ ์ ๋ชจ๋ ์ฌ์ดํธ๋ฅผ ๋ฐฐํฌํด์ผ ํฉ๋๋ค. ์ค์ํ. ์ด๊ฒ์ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ ๋๋ค. ์ง๊ธ ์ฐ๋ฆฌ๋ ๊ฐ๋ณ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ(๋ง์ดํฌ๋ก ์๋น์ค)์ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ ๋ณ๋์ ์ฑ ์๋น์ค๋ก ํผ๋จ๋ฆด ์ ์์ง๋ง, ๋ก๋ ๋ฐธ๋ฐ์/๊ฒ์ดํธ์จ์ด๊ฐ ๋ค์ ๊ฐ์ ๋๋ฉ์ธ์ ๊ณต์ ํ๋๋ก ํ๊ธฐ ์ํด infront๊ฐ ํ์ํ๊ณ , ๋ํ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ๊ธฐ๊บผ์ด ํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์๊ฐ์ด ์์๋ฉ๋๋ค.
๊ทธ๋์ ๋๋ ๋น์ ์ ์ ์์ด ๋ ๋ฐ๋์งํ ๋ฐฉ๋ฒ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ๊ฒ์ ๋จ์ง ์ง๊ธ ์ฐ๋ฆฌ์ ๋ง์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ์ ํ ์ฌ์ฉ ์ค์ธ ํ์ผ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ ๊ธฐ๋ํ๊ณ ์์ต๋๋ค.
@pksorensen ๋๋ฏธ ์ฌ์ดํธ์ ๋ณต์ ๋ฅผ ์ค์ ํ๊ณ ๊ทธ ์ด๋ฆ์ ๊ณต์ ํ ์ ์๋ ๊ธฐํ๊ฐ ์์ต๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ดํธ๊ฐ ์คํ๋๊ณ ์๋ ์ํ์์ ๋ณด๊ณ ์ถ๊ณ , Kudu ์ฝ์์์ ์๋์ผ๋ก app_offline.htm์ ์์ฑํด๋ ์ข ๋ฃ๋์ง ์์ต๋๋ค .
@shirhatti ANCM ์ด ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ์ง ๋ชปํ๊ฒ ํ๋ ์์ธ์ด ๋ฌด์์ธ์ง ์์ญ๋๊น? ์ผ๋ง๋ ๊ณต๊ฒฉ์ ์ผ๋ก ๊ทธ๋ ๊ฒ ํ๋ ค๊ณ ํฉ๋๊น?
@davidebbo ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฌ์ง๋ง ์ฌํ์ ์ํด ๋ญ๊ฐ๋ฅผ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
@davidebbo ์ ASP.NET Core ์ฑ๊ณผ ์ Azure App Service๋ฅผ ๋ง๋ค์์ต๋๋ค. Azure์ "์ง์์ ์ ๋ฌ(๋ฏธ๋ฆฌ ๋ณด๊ธฐ)" ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์๋๋ฐ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
2017-03-30T02:54:36.5648892Z ##[์ค๋ฅ]App Service๋ฅผ ๋ฐฐํฌํ์ง ๋ชปํ์ต๋๋ค.
2017-03-30T02:54:36.5658893Z ##[์ค๋ฅ]์ค๋ฅ ์ฝ๋: ERROR_FILE_IN_USE
2017-03-30T02:54:37.1850861Z ์ถ๊ฐ ์ ๋ณด: ์ธ๋ถ ํ๋ก์ธ์ค์ ์ํด ์ ๊ฒจ ์๊ธฐ ๋๋ฌธ์ Web Deploy๋ ๋์์์ 'myApp.dll' ํ์ผ์ ์์ ํ ์ ์์ต๋๋ค. ๊ฒ์ ์์
์ด ์ฑ๊ณตํ๋ ค๋ฉด ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ํ์ฌ ์ ๊ธ์ ํด์ ํ๊ฑฐ๋ ๋ค์ ๊ฒ์ ์๋์์ .Net ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด AppOffline ๊ท์น ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํด์ผ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE๋ฅผ ์ฐธ์กฐํ์ธ์.
2017-03-30T02:54:37.1860517Z ์ค๋ฅ ์: 1.
2017-03-30T02:54:37.4179909Z ##[์ค๋ฅ]์ค๋ฅ: C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe๊ฐ ๋ฐํ ์ฝ๋์ ํจ๊ป ์คํจํ์ต๋๋ค: 4294967295
D:\home\site\wwwroot์ app_offline.htm์ ์๋์ผ๋ก ์์ฑํ๋ฉด ์ค์ ๋ก dotnet.exe ํ๋ก์ธ์ค๊ฐ ์ค์ง๋ฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด "์ง์์ ์ ๋ฌ(๋ฏธ๋ฆฌ๋ณด๊ธฐ)" ์์ฒด์ ๋ฌธ์ ๊ฐ ์๋ค๋ ์๋ฏธ์ ๋๊น?
์์ ์ถ๊ฐ๋ก ์๋์ผ๋ก VSTS ๋ฆด๋ฆฌ์ค ์ ์, ์ถ๊ฐ ๋ฐฐํฌ ์ต์ ์ผ๋ก ์ด๋ํ์ฌ "์ฑ์ ์คํ๋ผ์ธ์ผ๋ก ์ ํ"์ ์ ํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ช ๊ฐ์ง ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค.
"์ฑ ์คํ๋ผ์ธ์ผ๋ก ์ ํ"์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ ํด์ ๋์ด ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ด ์๋๋ฆฌ์ค๊ฐ ์ฌ์ ํ ์๋ํด์ผ ํฉ๋๊น(์: ๊ฐ๋ ์ค์ง ์๊ฐ์ ์ค์
๋๊น)?
๊ทธ๋ ๋ค๋ฉด ์ ์คํจํฉ๋๊น? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ "์ฐ์ ๋ฐฐ์ก(๋ฏธ๋ฆฌ๋ณด๊ธฐ)"์ด ์ ํ๋์ง ์์ ์ํ๋ก ์ ์ง๋๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ด๋ ์ชฝ์ด๋ - ์ด๋๊ฐ์ ๋ฒ๊ทธ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@Jon12345 : ์ด ์ค๋ ๋๋ app_offline.htm์ด ํต์ฌ ์ฑ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ์ฌ๋ถ์ ๋ํ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ VSTS๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์์ ์ ์ํํ๊ฑฐ๋ ์ํํ์ง ์์ ์ ์๋ค๋ ์ฌ์ค์ ์ค์ ๋ก ๋ณ๋์ ํ ๋ก ์ด๋ฉฐ, ์ด๋ VSTS ํฌ๋ผ(์๋ง๋ https://social.msdn.microsoft.com/Forums/vstudio/en-US/ ํ?ํฌ๋ผ=TFService).
์ด ์์ ์์ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์์ ํ ์ฐจ๋จ์ด ํด์ ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. @pksorensen ์์ ์๋ํ์ง ์๋๋ค๋ ๋ณด๊ณ ๊ฐ ํ๋ ์์๊ณ ์ฐ๋ฆฌ๋ repro ์ฑ์ด ์ดํด๋ณด๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๋๋ ์ฌ์ ํ ์ด๊ฒ์ TFS 2017 ์ ๋ฐ์ดํธ 1์์ ์ป์ต๋๋ค.
@jdshkolnik appoffline.htm ํ์ผ์ ์์ฑํ๋๋ก ์ค์ ๋์์ต๋๊น? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค. ์์ ์ค๋ช ๋ ๋๋ก ์๋ appoffline.hm ํ ์คํธ๋ฅผ ์ํํ์ญ์์ค.
@davidebbo ๋ค, ๊ทธ๋ ์ต๋๋ค. ์์ฝ๋ ์ผ๊ฐ ๋ฐฐํฌ๊ฐ ์ฒซ ๋ฒ์งธ ์๋์ ์คํจํ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ฑ๊ณตํ๋ ์๋ ์ฌ๋ฐฐํฌ ์๋๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ฐธ๊ณ ๋ก ์ ํฌ ํ์ฌ๋ ๊ทํ์ ํ์ฌ์ ์ฐํฉ๋์ด ์์ผ๋ฏ๋ก Skype for Business ๋ฐ์คํฌํ ๊ณต์ ๋ฅผ ํตํด ๊ทํ์๊ฒ ์ฝ๊ฒ ๋ณด์ฌ๋๋ฆด ์ ์์ต๋๋ค.
@jdshkolnik ์์์ ๋ ผ์ํ ์๋ ํ ์คํธ๋ฅผ ์ํํ๋์ง ํ์ธํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฐฉ์ ์์์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ป๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ค์ : ์ด ๋ฌธ์ ๋ VSTS ๋๋ ๊ธฐํ ๊ฒ์ ์ํฌํ๋ก์ ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๊ธฐ ์ํ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ ์ค์ง ํ ๊ฐ์ง์ ๊ดํ ๊ฒ์ ๋๋ค: appoffline.htm์ด ์๋ํ๋์ง ํ์ธํ์ญ์์ค.
@davidebbo ์๋์ผ๋ก app_offline.htm์ ํด๋์ ๋ฃ์๋ง์ ์คํ๋ผ์ธ์ด ๋ฉ๋๋ค.
๋ด๊ฐ ์ฌ๊ธฐ์์ ์๋ฒฝํ๊ฒ ์ฃผ์ ์ธ์ง ์๋์ง๋ฅผ ๋ ์ ๊ตฌ๋ณํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ด๊ฐ ์๋ ๊ฒ์ ๋ฌธ์ ์์ด ์๋ํ๋ ์ฌ์ดํธ์ ๋ํด ์๋ ์ ๊ฐ์๊ธฐ ๋ํ๋ ๊ทธ ์ดํ๋ก ์ ๊ธฐ์ ์ผ๋ก ๊ณ ๊ฐ๋ฅผ ๋ค๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค.
##[section]Starting: Deploy IIS App: \\usserver\Deploy\CD_146_QA\Installer\Install\Web\App.Web.zip
==============================================================================
Task : WinRM - IIS Web App Deployment
Description : Connect via WinRM, to deploy Web project locally on IIS, using Web Deploy
Version : 1.4.3
Author : Microsoft Corporation
Help : [More Information](http://aka.ms/IISWebDeploy)
==============================================================================
Preparing task execution handler.
Executing the powershell script: I:\Agent\_work\_tasks\IISWebAppDeploy_50acc50f-7d15-470b-83c1-578b3f3eeba2\1.4.3\Main.ps1
name='db-Web.config Connection String',value='Data Source=dbserver;Database=Internal_QA;Type System Version=SQL Server 2012;User ID=xxx;Password=yyy;Persist Security Info=True')
Starting deployment of IIS Web Deploy Package : \\usserver\Deploy\CD_146_QA\Installer\Install\Web\App.Web.zip
Performing deployment in sequentially on all machines.
Deployment started for machine: usserver with port 5985.
Deployment status for machine usserver : Failed
##[error]Microsoft.PowerShell.Commands.WriteErrorException: System.Exception: Error Code: ERROR_FILE_IN_USE
For more info please refer to http://aka.ms/iisextnreadme
##[error]PowerShell script completed with 1 errors.
##[section]Finishing: Deploy IIS App: \\usserver\Deploy\CD_146_QA\Installer\Install\Web\App.Web.zip
@jdshkolnik ๋ด ์ถ์ธก์ผ๋ก๋ ์ด ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๊ฐ ๋ฌด์์ ํ๋ ํ์ผ์ ๊ฒ์ํ๊ธฐ ์ ์ appoffline.htm์ ์์ฑํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. VSTS ๊ตฌ์ฑ ๋ฌธ์ ๋๋ ๋ฒ๊ทธ์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ANCM์ ๊ด์ ์์ ์ํํ ํ ์คํธ๋ appoffline์ด ์์ฑ๋ ๋ ์์๋๋ก ์๋ํ๊ณ ์์์ ๋ณด์ฌ์ค๋๋ค.
@davidebbo ๋ด๊ฐ ํ ์ผ์ด ์ต์ข ํ ์คํธ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ฒฐ๊ตญ ์ค๋ฅ๊ฐ ๋ฐ์ํ ํ ๋ ๋ฒ์งธ ์๋ ์๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ฑ๊ณตํฉ๋๋ค. app_offline.htm์ ์ฐจ๋จํ ์ ์๋ ๋ฐฐํฌ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์์ง ์์์ต๋๋ค.
7.1.1971.0์์ ์ด ๋์๋ฌธ์ ๊ตฌ๋ถ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ๊ณ ์์ต๋๋ค. VS๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ๋ ค๊ณ ํ๋ฉด ํ์ผ ์ ๊น ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฏ๋ก ์ฑ์ด ์ฌ์ ํ ์คํ ์ค์ด๊ณ ์ถฉ๋ถํ ์คํ ์ค์ธ์ง ํ์ธํ์ต๋๋ค. Kudu ๋ช ๋ น์ค์ ์ด์ด wwwroot ๋๋ ํฐ๋ฆฌ์ App_Offline.htm์ด ํด๋์ ์์์ง๋ง ํ๋ก์ธ์ค๊ฐ ์ฌ์ ํ ์คํ ์ค์ธ ํ์ผ์ ํ์ธํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ touch app_offline.htm์ ์ ๋ ฅํ๊ณ ํ๋ก์ธ์ค๊ฐ ์์๋๋ก ์คํ์ ๋ฉ์ท์ต๋๋ค. ๋ชจ๋์ ๋ค์ ํ์ธํ๊ณ ๋ด aspnetcore.dll ๋ฒ์ ์ 7.1.1971.0์ ๋๋ค.
@alexgritton ์ด์ํฉ๋๋ค. ANCM์ด ์ฒ์์ ํ์ผ์ ๊ฐ์งํ์ง ๋ชปํ์์ ์๋ฏธํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ง์์ ์ผ๋ก ๋ฐ์ํฉ๋๊น ์๋๋ฉด ๋ฌด์์๋ก ๋ฐ์ํฉ๋๊น?
์ค๋ Azure App Services์์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์์ผ๋ฉฐ ํ๋ฃจ ์ข ์ผ ๋ฐ์ํ๋ฏ๋ก ์ผ๊ด๋๊ฒ ๋งํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ์ ์์ธ์ด ๋ ์ ์๋ ๋ค๋ฅธ ์์ด๋์ด๊ฐ ์์ต๋๊น?
์ค๋ง. ANCM ์ ๋ฌธ๊ฐ๊ฐ ํ์ผ ๋ณ๊ฒฝ ๋ชจ๋ํฐ๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๊ธฐ ์์ฑ์ด ๊ฐ์ง๋์ง ์๋ ์ด์ ๋ฅผ ์๊ฐํ ์ ์๋์ง ์ฌ๋ถ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค.
@davidebbo ์ ํํ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ ํ์๋ ๋น๋ ์๋ฒ์์ AppBuild.htm ํ์ผ์ app_offline.htm์ผ๋ก ๋์ ์ฌ์ดํธ์ ๋ณต์ฌํ๋ Fake ๋น๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ msdeploy๋ฅผ ์ฌ์ฉํ์ฌ ํด๋๋ฅผ ๋๊ธฐํํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค ์ค๋ฅ๋ก ์ธํด ์ด๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ํ์ผ์ ํฐ์นํ๋ฉด ํ์ผ ์ด๋ฆ์ app_offline.htm์์ app_offline.htm.rename์ผ๋ก ๋ณ๊ฒฝํ๊ณ ๋ค์ ๋๋๋ฆฌ๊ฑฐ๋ ํ์ผ ํ์๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ app_offline.htm์ ๋ฎ์ด์ฐ๋ฉด ํ๋ก์ธ์ค๊ฐ ์ ๋๋ก ์ค์ง๋ฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์๋ํ์ง ์๋ ์ด์ ๋ ์ดํด๊ฐ ๋์ง ์์ง๋ง ์๋์ผ๋ก ์ํํ๋ฉด ์๋ํฉ๋๋ค.
์ ๋ฐ์ดํธ: ๋ง์ง๋ง ์ฐ๊ธฐ ์๊ฐ์ ์ ๋ฐ์ดํธํ๋ฉด ์ง์์ ์ผ๋ก ์ข ๋ฃ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
Target "StopApi" (fun _ ->
trace "Deployment - Stopping Api"
for folder in apiWebDeployShare do
let offlineFile = folder @@ "app_offline.htm"
let offlineFileSource = folder @@ "AppOffline.htm"
CopyFile offlineFile offlineFileSource
File.SetLastWriteTime (offlineFile, DateTime.Now)
)
app_offline.htm ํ์ผ์ ๋ชจ๋ํฐ๋งํ๋ ์ฝ๋์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@derekgreeer ๊ทธ๋์ ๋น์ ์ด๋ณด๊ณ ์๋ ๊ฒ์ ํ์ผ์ ๋ณต์ฌ ํ ๋ ์ข ๋ฃ๊ฐ ํธ๋ฆฌ๊ฑฐ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. Kudu ์ฝ์์์ ์ด๊ฒ์ ์ฌํํ ์ ์์ต๋๋ค. ์
touch app_offline.htm
in D:\home\site
๋ฅผ ์คํํ์ฌ ๋ค๋ฅธ ํด๋์ ๋น ํ์ผ ์์ฑcopy app_offline.htm wwwroot
๋ฅผ ์คํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ง์ง๋ง ์ฐ๊ธฐ ์๊ฐ์ด ๋ณด์กด๋๊ณ ์์ฑ ์๊ฐ์ด ์
๋ฐ์ดํธ๋ฉ๋๋ค(ํ์ค ํ์ผ ๋ณต์ฌ ๋์).๊ฒฐ๊ณผ: dotnet.exe ํ๋ก์ธ์ค๊ฐ ์ฆ์ ์ข ๋ฃ๋ฉ๋๋ค(Kudu ํ๋ก์ธ์ค ํ์๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธํ ์ ์์).
์ด ๋์ผํ ๋จ๊ณ๊ฐ ํจ๊ณผ๊ฐ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ฌํ ์๋๋ฆฌ์ค์์ ๋ฌด์์ด ๋ค๋ฅผ ์ ์์ต๋๊น?
์ฌ์ค ์ด ๋ฌธ์ ๋ ๊ฐํ์ ์ผ๋ก ๋ฐ์ํ์ผ๋ฉฐ Windows Server 2012์์ IIS 8์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๋ง๋ถ์์ต๋๋ค.
์ค๋ ์์นจ์ ๋ด ์๋๋ Kudu ์ฝ์์ ์ค์ ํ๊ธฐ ์ ์ powershell ๋๋ ๋ฐฐ์น ์คํฌ๋ฆฝํธ๋ก ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์๋์ง ํ์ธํ๋ ๊ฒ์ด์ง๋ง, ๋จผ์ ํ ์คํธ Fake ๋น๋ ์คํฌ๋ฆฝํธ๋ก ํ ์คํธํ ํ ์ฐ๋ฆฌ ํ์ด ๊ธ์์ผ์ app_offline.htm ํ์ผ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ์ต๋๋ค. ๋ค์ํ ๋ฐฉ๋ฒ(๊ธฐ์กด ํ์ผ ๋ณต์ฌ, ์ ํ์ผ ์์ฑ ๋ฑ), ํ์ฌ ์๋ ์ค์ ๋๋ค. ์ด๊ฒ์ ๋๋๋ก ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๊ณ ๋ค๋ฅธ ์๊ฐ์๋ ์ข ๋ฃํ์ง ์๋ ๋น๋ ์คํจ ํจํด์ ๋ฐ์ํฉ๋๋ค. ์คํจํ๊ธฐ ์์ํ๋ฉด ์ผ๊ด๋๊ฒ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ธ์์ผ์ ๋ช ์๊ฐ ๋์ ํ ์คํธํ์ผ๋ฉฐ ์๋ก์ด app_offline.htm ํ์ผ์ ๋ง๋๋ ๊ฒ ์ธ์๋ ์๋ฌด ๊ฒ๋ ํ์ง ์๋ ๋จ์ํ Fake ๋น๋๋ก ์ผ๊ด๋๊ฒ ๋ฉ์ถ์ง ์์์ต๋๋ค. ๋ํ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ผ์ ์๋์ผ๋ก ์์ฑํ๊ณ ํ๋ก์ธ์ค๊ฐ ์ค์ง๋๋ ๊ฒ์ ํ์ธํ๊ธฐ ์ํด ์ถ๊ฐํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฅ๊ธฐ๊ฐ ์ฌ์ฉํ ํ์๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์ง ์๋ ์ํฉ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๋ฅผ ๋ค์ ์ฌํํ ์ ์๊ฒ ๋๋ฉด powershell ๋ฐ/๋๋ ๋ฐฐ์น ํ์ผ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ์์ฑํด๋ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์๋๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
@davidebbo ๊ธ์, ์ ์ฅ ... ๋ง์ง๋ง ์ ๋ฐ์ดํธ ์๊ฐ์ ์ ๋ฐ์ดํธํ๋ ์ค์ ์ฃผ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์์ด ๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ฌ์ ํ ๋์ผํ ๋์์ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค. ์ง๊ธ powershell๊ณผ ๋ฐฐ์น ํ์ผ์ ์ฌ์ฉํด ๋ณด๊ณ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
@davidebbo
ํผ๋์ ๋๋ ค ์ฃ์กํฉ๋๋ค. ์, ์ ๊ฐ ์ฐพ์ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์ ๋ด์ฉ์ด ํฌํจ๋ ๋ฐฐ์น ํ์ผ์ ์ฌ์ฉํ๋ฉด ํ๋ก์ธ์ค๊ฐ ์์ ์ ์ผ๋ก ์ข ๋ฃ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
echo "" > \\testserver\e$\Site.Api\app_offline.htm
๋๋ฑํ bash ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ธ์ค๊ฐ ์์ ์ ์ผ๋ก ์ข ๋ฃ๋ ์๋ ์์ต๋๋ค.
#!/bin/bash
echo "" > //testserver/e$/Site.Api/app_offline.htm
๋ค์ ๋ด์ฉ๊ณผ ํจ๊ป powershell ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
New-Item \\testserver\e$\Site.Api\app_offline.htm -type file
Fake์ Powershell์ ๋ชจ๋ CLR์์ ์คํ๋์ง๋ง DOS ๋ณต์ฌ ๋ช ๋ น, bash ๋ฐ Kudu ์ฝ์์ ์คํ๋์ง ์๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ด๊ฒ์ CLR์ ํตํด ์์ฑ๋๋ ํ์ผ๊ณผ ๊ด๋ จ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์ํ ์ ์ ๋ค์ํ ๋ฒ์ ๊ฐ์ ๊ฒฐ๊ณผ ํ์ผ์ ์์ฑ/์ ๋ฐ์ดํธ ํ์์คํฌํ์ ์ฐจ์ด๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
@derekgreer ์ค, ๊ทธ๋์ ๋น์ ์ Azure App Service์์ ์ ํ ์คํ๋๊ณ ์์ง ์์ต๋๋ค. ์ด๊ฒ์ด ์ด ์ฌ๊ฐ์์ ์ ๊ด์ ์ ๋๋ค. ๋ฐ๋ผ์ ASP.NET ์ฌ๋๋ค์ด ์ด์ ๋ํด ๋ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๊ทธ๋งํ ๊ฐ์น๊ฐ ์์ง๋ง App Service์์ ์ฌํํ ์ ์์์ต๋๋ค.
New-Item app_offline.htm -type file
์คํ@moozzyk ์ฑ ์๋น์ค ์ธ๋ถ์์ @derekgreer ์ ์ฌํ์ ์กฐ์ฌํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๊น?
์ถ๊ฐ ์ ๋ณด:
ํ์ผ ํ์๊ธฐ๋ฅผ ํตํ ์์ฑ, ๋ณต์ฌ, ์ด๋ฆ ๋ฐ๊พธ๊ธฐ ๋ฑ์ด ์ผ๊ด๋๊ฒ ์๋ํ๊ธฐ ๋๋ฌธ์ .Net ๊ธฐ๋ฐ ํ์ผ ํ์๊ธฐ ์ฑ์ด Fake ๋ฐ PowerShell์์ ๋ณด๊ณ ์๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ๋์ง ํ์ธํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ค์ด๋ก๋ ๋ฐ ํ ์คํธ๋ฅผ ๋ง์น "Nomad"๋ผ๋ .Net ๊ธฐ๋ฐ ํ์ผ ํ์๊ธฐ๊ฐ ์์ผ๋ฉฐ ๊ฒฐ๊ณผ๋ Fake ๋ฐ PowerShell๊ณผ ์ผ์นํ์ต๋๋ค. app_offline.htm ํ์ผ์ ์์ฑํ ๋ ํ๋ก์ธ์ค๊ฐ ์ค์ง๋์ง ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์ผ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ ๋ค์ app_offline.htm์ผ๋ก ์ด๋ฆ์ ๋ฐ๊พธ๋ฉด Core ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ "FILE_NOTIFY_CHANGE_CREATION" ํ๋๊ทธ๋ฅผ ํฌํจํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Fake, PowerShell ๋ฐ Nomad์ ๊ณตํต์ ์ธ .Net API๊ฐ ์ผ๋ฐ ํ์ผ ์์ฑ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ด๋ฌํ ๋ค๋ฅธ ํ๋๊ทธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์๋์ง ๊ถ๊ธํฉ๋๋ค.
@shirhatti ๋๊ตฐ๊ฐ๊ฐ ์ด ์ ์ฌ์ ์ธ ANCM ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๋๋ก ํด์ฃผ์ค ์ ์์ต๋๊น?
@davidebbo ์์ดํฌ . ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์กฐ์ฌํ๊ณ ์์ต๋๋ค
๋๋ ๋งค์ฐ ๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Windows ํ์๊ธฐ์์ app_offline.htm ํ์ผ์ ๋ณต์ฌํ๋ฉด ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ง๋์ง๋ง ๋น๋ ์๋ฒ์์ COPY app_offline.htm \server\share\siteapp_offline.htm์ ์ฌ์ฉํ์ฌ ์์ฑํ๋ฉด ์ค์ง๋์ง ์๊ณ ํ์ผ์ด ์ ๊ธด ์ํ๋ก ์ ์ง๋ฉ๋๋ค. .
@gulbanana ๋น์ ๊ณผ ๋๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ฏธ ํด๊ฒฐํ์ จ๋์? @shirhatti ์กฐ์ฌ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ์ด๊ฒ์ dotnet.exe๊ฐ app_offline.htm์ ์ํด ์ข ๋ฃ๋์ง ์์ ๋ฐ์ํ๋ ํ์ผ ๋ณต์ฌ ์คํจ๋ก ์ธํด CI ํ์ดํ๋ผ์ธ์ด ํญ์ ์คํจํ๊ธฐ ๋๋ฌธ์ ํ์ ๋ฏธ์น๊ฒ ๋ง๋ญ๋๋ค.
echo "<html>page content</html>" > \\server\share\app_offline.htm
๋ผ์ธ์ ๋ฐ๋ผ ๋ฌด์ธ๊ฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๋๋ ๋ฒ๊ทธ๊ฐ ANCM์ด ํ์ผ ์์ฑ์ ์ผ๋ถ ๋ฐฉ๋ฒ๋ง์ ๊ด์ฐฐํ๋ ๊ฒ์ ๊ดํ ๋ฒ๊ทธ๋ผ๊ณ @derekgreeer ๊ฐ ์ณ๋ค๊ณ ์๊ฐํ๋ฉฐ, ์ด ๋ฐฉ๋ฒ์ ํฌ์ฐฉํฉ๋๋ค.
@derekgreer
์ง๊ธ ๋ฌธ์ ๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค. ๋ด ํ
์คํธ ์์คํ
์์ ๊ทํ์ ์ฌํ ๋ช
๋ น ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์์ต๋๋ค. ์๋ ๋ช
๋ น์ ์ฌ์ฉํ์ต๋๋ค. (์ฐธ๊ณ : ์๋ ๋ช
๋ น์ ๋น(ํ์ผ ํฌ๊ธฐ 0) ํ์ผ์ ์์ฑํฉ๋๋ค.
new-item \\iisdist\privates\jhkim\temp\PublishOutput\app_offline.htm -ItemType file
ํ ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์ ์ app_offline.htm ํ์ผ์ ์์ฑํ ๋ ์ผ๋ถ ํ์ผ ์ฝํ ์ธ ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด -value "test" ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
new-item \\iisdist\privates\jhkim\temp\PublishOutput\app_offline.htm -ItemType file -value "test"
Repro ํ๊ฒฝ์์ ๋์ผํ ์ฆ์์ด ๋ํ๋๋์ง ํ์ธํ ์ ์์ต๋๊น?
๊ทธ๋ ๋ค๋ฉด ์ด ๋ฌธ์ ๋ new-item powershell ๋ช
๋ น์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ํน๋ณํ ๋ฐฉ๋ฒ์ผ๋ก ๋น app_offline.htm์ด ์์ฑ๋ ๋๋ง ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@gulbanana
๋ณต์ฌ ๋ช
๋ น์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค. ๊ทํ์ ์ฌํ์ ๋ํด ๋ ์์ธํ ์ค๋ช
ํ ์ ์์ต๋๊น? ๋ด ํ
์คํธ ์์คํ
์์ ๋์ผํ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์๋ ๋ช ๊ฐ์ง ์ฌํ ๋จ๊ณ๋ฅผ ์ฐพ์ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค.
์ํ๋ ๋ด์ฉ์ด ํฌํจ๋ ํ์ผ์ ๋ฐฐํฌ ํด๋์ ๋ณต์ฌํ ๊ฒฝํ์ด ์์ผ๋ฏ๋ก ํด๋น ๋ช ๋ น์ ์คํํ์ง ์๊ณ app_offline.htm ํ์ผ์ด ๋น์ด ์๋์ง ์ฌ๋ถ์ ๊ด๋ จ์ด ์์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ์ค์ ๋ก ์๋ํ๋ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ๋ช ๋ น์ผ๋ก ์ธํด ํ์ผ ๋ณ๊ฒฝ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์๋ง๋ ํ์ผ์ ์์ฑํ๊ณ ๋ด์ฉ์ผ๋ก ์ ๋ฐ์ดํธํ ๊ฒ์ ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ด์ฉ์ด ์๊ฑฐ๋ ์๋ ํ์ผ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ๋ชจ๋ .net ๊ด๋ จ ํ๋ก์ธ์ค๋ ํ๋ก์ธ์ค ์ข ๋ฃ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ๋ชปํฉ๋๋ค.
@shirhatti ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ์ฝ๋๊ฐ "FILE_NOTIFY_CHANGE_CREATION" ํ๋๊ทธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ํ์ธํ ์ ์์์ต๋๊น?
@derekgreeer ๋ง์ง๋ง โโ์ ๊ทผ ๋ณ๊ฒฝ ๋ฐ ์์ฑ ๋ณ๊ฒฝ์ ์ ์ธํ ๋ชจ๋ ์ ํจํ ํ๋๊ทธ๋ฅผ ์์ ํฉ๋๋ค.
FILE_NOTIFY_VALID_MASK & ~FILE_NOTIFY_CHANGE_LAST_ACCESS & ~FILE_NOTIFY_CHANGE_ATTRIBUTES
์, ์ฐ๋ฆฌ๋ ์ด๋ฏธ FILE_NOTIFY_CHANGE_CREATION
๋ฅผ ๋ฃ๊ณ ์์ต๋๋ค.
์ฐธ์กฐ: @pan-wang
@shirhatti ์, ์ด์ ์ดํดํ์ต๋๋ค. ํ๋๊ทธ๊ฐ ๋ณ๊ฒฝ ์์ฑ์ ํฌํจํ๋ค๋ ๊ฒ์ ๋ชฐ๋์ต๋๋ค. ๊ถ๊ธํ๋ฐ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์์ต๋๊น?
๋น์ด ์๋ app_offline.htm์ ๋ฐ์ํ์ง ์๋ ๋ฌธ์ ๊ฐ ์์ ๋์์ต๋๋ค. https://github.com/aspnet/IISIntegration/issues/174
@moozzyk @derekgreeer ํ์ธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ข์, ๋๋ ๋ํ ๋ฌธ์ ๊ฐ ๋น ํ์ผ ๋ด์ฉ๊ณผ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทผ๋ณธ ์์ธ์ ํ์ ํ ํ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
@jhkimnew ๋ ์ด์ ์ ํํ ์ค์ ์ด ๊นจ์ ธ ์์ง ์์ง๋ง ์ธ๋ถ ์ฌํญ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
๋๋ ๋ฌธ์ ๊ฐ ์ ํํ ์ด๋ค ํ์ผ ์์ฑ์ด ๊ทธ๋ฐ ์ข ๋ฅ์ ์๊ฒฉ ๋ณต์ฌ๋ณธ์ ์ํด ์ ๋ฐ์ดํธ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ๋์ง ์๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@gulbanana ๋ช ํํ๊ฒ ํ๊ธฐ ์ํด power shell copy-item commandlet์ด ์๋ dos copy ๋ช ๋ น์ผ๋ก ์๋ํ์ต๋๊น? ๋๋ ์ผ๋ฐ ๋์ค ์นดํผ๋ฅผ ์๋ํ์ง ์์๋ค๊ณ ์๊ฐํ์ง๋ง, ๋ด๊ฐ ์ฌ์ฉํ .net ๊ธฐ๋ฐ ์ฑ์ด ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
powershell์ ๋ณ์นญ์ด ์์ผ๋ฉด dos copy์์ต๋๋ค.
ํ์์ ๊ฒฝ์ฐ PowerShell ๋ณต์ฌ๋ณธ์ dotnet.exe ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ์ง ์์ง๋ง Out-Content์ ๋ณ์นญ์ธ echo๋ ์๋ํฉ๋๋ค. .NET ๋ฌธ์ ๋ ์๋ ๊ฒ ๊ฐ์ง๋ง ๋คํธ์ํฌ ๋ณต์ฌ๊ฐ ์๋ํ์ง ์๋ ์ด์ ์ ๋ํด ์์ธํ ์์๋ณด์ญ์์ค.
aspnetcore.dll(ANCM) ๋ณ๊ฒฝ ์๋ฆผ์ ๋ฌธ์ ๊ฐ ์๋์ง ์กฐ์ฌํ์ง๋ง powershell cmdlet ๋๋ DOS ๋ช
๋ น์ ์ฌ์ฉํ์ฌ app_offline.htm์ ์๋์ผ๋ก ์ญ์ ํ๋ ค๊ณ ํ๋ฉด ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๋
ผ์๋์ง ์์ ํ ๊ฐ์ง ๋๋ฝ๋ ์ ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๊ทธ๊ฒ์ ๋จ๊ณ์ ์ข
๋ฃ์ ๊ดํ ๊ฒ์
๋๋ค. HttpPlatformHandler"์ ๋ฌ๋ฆฌ ANCM์ ๋จ๊ณ์ ์ข
๋ฃ๋ฅผ ์ง์ํฉ๋๋ค. ์ฆ, app_offline.htm์ด ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ์ญ์ ๋๋ฉด ANCM์ Crtrl-C/Break ์ ํธ๋ฅผ ๋ฐฑ์๋ ํ๋ก์ธ์ค์ ๋ณด๋ด๊ณ ๋จ๊ณ์ ์ข
๋ฃ๊ฐ ๋ฐ์ํ ๋๊น์ง 10์ด๋ฅผ ๊ธฐ๋ค๋ฆฝ๋๋ค.
10์ด๊ฐ ๊ธฐ๋ณธ๊ฐ์ด๋ฉฐ ์ฌ์ฉ์๋ ANCM ๊ตฌ์ฑ ์ค์ ์ shutdownTimeLimit์ผ๋ก ๊ฐ์ ์กฐ์ ํ ์ ์์ต๋๋ค. ๋ฐฑ์๋ ํ๋ก์ธ์ค๊ฐ ๊ตฌ์ฑ๋ shutdownTimeLimit์์ ์ข
๋ฃ๋์ง ์์ผ๋ฉด ANCM์ ๋ฐฑ์๋ ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃํด์ผ ํฉ๋๋ค.
MSDeploy ๊ฒ์๊ฐ ANCM ์ ์ ์ข ๋ฃ์ ์ด๋ป๊ฒ ๊ด๋ จ๋์ด ์๋์ง ํ์ธํ๋ ๋์ ๋ง์นจ๋ด ์ข ๋ฃ ์๊ฐ(5์ด)์ ๋๋ฆฌ๋ ์ผ๊ด๋ ์ฌํ ๋จ๊ณ๋ฅผ ์ฐพ์์ต๋๋ค. ์ ์์ ์ธ ์ข ๋ฃ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@vijayrkn
aspnetcore ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ํ๊ณ ์ข
๋ฃํ๋ ์์น์ 5์ด ์ง์ฐ์ ๋ฃ์ ํ ์ด ๋ฌธ์ ์์ ๋ณด๊ณ ๋ ๋์ผํ ์ค๋ฅ๋ฅผ aspnetcore ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ก์ปฌ IIS ์๋ฒ์ ๊ฒ์ํ๋ ๋ ๋ฒ์งธ ์๋์์ ์ฌํํ ์ ์์์ต๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ ๊ฒ์ ํ๋กํ๋ ์๋์ ์ฒจ๋ถํ์ต๋๋ค.
์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋์ง ์ค๋ช
ํ๊ณ ์ด ๊ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ฌ๋ฐ๋ฅธ ์ง์นจ์ ์ ๊ณตํ์๊ฒ ์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ํ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๊ธฐ ์ํด ์ด ๋ฌธ์ ๋ฅผ ์ถ์ ํ ์ ์๋๋ก ์ด ๋ฌธ์ ์ ๋ํด ๋ณ๋๋ก ์ ๋ฌธ์ ๋ฅผ ๋ง๋์ญ์์ค.
...
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
<WebPublishMethod>MSDeploy</WebPublishMethod>
...
MSDeploy๋ app_offline์ด ์ญ์ ๋ ์งํ์ ๋ฐฐํฌ๋ฅผ ์๋ํฉ๋๋ค. ํ๋ก์ธ์ค ์ค์ง๊ฐ ์ง์ฐ๋๋ฉด ๋ฐฐํฌ๊ฐ ์คํจํ ์ ์์ต๋๋ค.
์ด msbuild ์์ฑ(https://github.com/aspnet/websdk/blob/dev/src/Publish/Microsoft.NET.Sdk.Publish.Targets/netstandard1.0/PublishTargets/Microsoft)์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ์ ๋ํ ์ฌ์๋ ํ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. .NET.Sdk.Publish.MSDeploy.targets#L67)
์๋ฅผ ๋ค์ด ์ด ์์ฑ์ 10์ผ๋ก ์ค์ ํ๋ฉด msdeploy๊ฐ ๊ทธ ์ฌ์ด์ 1์ด ์ง์ฐ์ ๋๊ณ 10๋ฒ ์ฌ์๋ํฉ๋๋ค.
<RetryAttemptsForDeployment>10</RetryAttemptsForDeployment>
@vijayrkn
์ ๋ณด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์๋ ๋ ์ค์ ์ถ๊ฐํ ํ ๋์ผํ ์ฌํ ํ๊ฒฝ์์ ๋ฌธ์ ๊ฐ ํ์๋์ง ์์ต๋๋ค.
<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>
<RetryAttemptsForDeployment>10</RetryAttemptsForDeployment>
๋ฐ๋ผ์ ์ ์ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์ฌ๋์ ์ ์ ํ ๊ฐ์ผ๋ก RetryAttemptsForDeployment ์๋ฅผ ๋๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ ๋ค์ ์๋ํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ : EnableMSDeployAppOffline์ ์ถ๊ฐํ ์ด์ ๋ ๋ก์ปฌ IIS ์๋ฒ๋ฅผ aspnetcore ์น ์์ฉ ํ๋ก๊ทธ๋จ ๊ฒ์ ๋์์ผ๋ก ์ฌ์ฉํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ํ๊ฒฝ์์ ํ์ฑํ๋์๋์ง ์ฌ๋ถ๊ฐ ํ์คํ์ง ์์ ๊ฒฝ์ฐ ํ๋ ์ถ๊ฐํ๋ฉด ๋๋ฏ๋ก ์ ๋ณด๋ฅผ ์ํด ์ฌ๊ธฐ์ ์ถ๊ฐํ์ต๋๋ค.
๊ฐ์ฅ ์ต๊ทผ์ ๋ ผ์๋ก ์ธํด ์๋ ๋ฌธ์ ๊ฐ ์์ค๋์ง ์๋๋ก ํ๊ธฐ ์ํด ์ฐ๋ฆฌ ํ์์ ๊ฒฝํํ ๋ฌธ์ ๋ ๊ฐ์ฅ ํ์คํ ํ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ์ฐ๋ฆฌ๋ Powershell, Fake ๋ฐ "Nomad"๋ผ๋ .Net ๊ธฐ๋ฐ ํ์ผ ํ์๊ธฐ๋ฅผ ํตํด app_offline.htm ํ์ผ์ ์๋์ผ๋ก ์์ฑํ๋ ๊ฒ์ ํ ์คํธํ์ผ๋ฉฐ ์ผ๋ง๋ ์ค๋ ๊ธฐ๋ค๋ฆฌ๋๋ผ๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์ง ์์ต๋๋ค. ํ์ผ ํ์๊ธฐ, DOS ๋ฐฐ์น ํ์ผ ๋๋ bash ์คํฌ๋ฆฝํธ(์: ๋น .Net ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฐ ํ๋ก์ธ์ค)๋ฅผ ํตํด ํ์ผ์ ์์ฑํ๋ฉด ํ๋ก์ธ์ค๊ฐ 1-2์ด ์ด๋ด์ ์ข ๋ฃ๋ฉ๋๋ค.
์ด๊ฒ์ ๋ค์์ ๋ํ๋ด๋ ๊ฒ ๊ฐ์ต๋๋ค.
app_offline.htm ํ์ผ์ ์์ฑํ๋ .Net์ด ์๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ด ํ๋ก์ธ์ค๋ฅผ ์์ ์ ์ด๊ณ ์ ์ํ๊ฒ ์ข ๋ฃํ๊ณ ํ์ผ์ ์์ฑํ๋ 3๊ฐ์ง .Net-library ๊ธฐ๋ฐ ๋ฐฉ๋ฒ์ด ํ ์คํธ์์ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ์ง ์๋๋ค๋ ์ฌ์ค์ ์ค์ ๋ก , ๋์๊ฒ ์ ๋ง ํฐ ์งํ.
@derekgreer
"๋
ธ๋ง๋"์์๋ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค.
๋ค์์ Windows 10(amd64) ์ปดํจํฐ์์ ์ํํ ์์
์
๋๋ค.
๋ฌธ์ ๋ฅผ ์ฌํํ๊ธฐ ์ํด ๋ฐ๋ฅผ ์ ์๋๋ก ์ ํํ ์ฌํ ๋จ๊ณ๋ฅผ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
.Net Core ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์ ๋ก ASP.Net Core ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๋ VS 2015์์ ์์ฑ๋ ํ์ค .Net 4.5.2 ์ฝ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ผ๋ ์ฌ์ค์ ์ ์ธํ๊ณ ๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ ์ด์ ์ฝ 1๋ ์ด ๋์๊ณ .Net ํ๋ ์์ํฌ ํ ํ๋ฆฟ ํ๋ก์ ํธ ์ ํ์์ ์ฝ์ด ํ ํ๋ฆฟ ํ๋ก์ ํธ ์ ํ์ ์ฐธ์กฐํ๋ ๋ฐ ์ ํ์ด ์๊ณ .Net ์ฝ์ด์ ๋ํ ๋ค์ํ ์ข ๋ฅ์ ํ ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์์ผ๋ก ์ธํด ๋น์์ ๊ทธ๋ ๊ฒ ์ค์ ๋์์ต๋๋ค.
๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํ์ธํ์ต๋๋ค. 1) app_offline.htm ํ์ผ ์ญ์ (์ผ๋ถ ๋๊ตฌ ์ฌ์ฉ)๋ ๋๋๋ก ANCM์ ์ํด ํํฐ๋ง๋ ํ์ผ ์์ฑ ๋ณ๊ฒฝ ์๋ฆผ๋ง ํธ๋ฆฌ๊ฑฐํ์ต๋๋ค. 2) ANCM์ app_offline.htm์ด ํ์ผ ๋ณต์ฌ ๋๊ตฌ์ ์ํด ๋ณด๋ฅ๋์๊ธฐ ๋๋ฌธ์ app_offline.htm์ ์ฝ์ง ๋ชปํ ์ ์์ต๋๋ค. 3) ์ ์์ ์ธ ์ข
๋ฃ๋ก ์ธํด ๋ฐฑ์๋ ํ๋ก์ธ์ค ์ข
๋ฃ๊ฐ ์ง์ฐ๋์์ต๋๋ค.
๋ค์ ๋ฆด๋ฆฌ์ค์์ ์ฒ์ ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ค๋ฃฐ ๊ฒ์
๋๋ค. ์ ์์ ์ธ ์ข
๋ฃ์ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ๋ค์ ์๋ํด์ผ ํฉ๋๋ค.
์ข์ ์๋ฆฌ. ๋ด ๊ฒฝ์ฐ๋ ํ์คํ ์ฐ์ํ ์ข ๋ฃ ์๊ฐ ์ด๊ณผ์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ์ค์ง๋๋ฉด ์ฆ์ ์ค์ง๋ฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
VSTS๋ฅผ ์ฌ์ฉํ์ฌ Azure Web App ์ฌ๋กฏ์ ASP.NET Core 1.1 ์ฑ์ ๋ฐฐํฌํ๋ ๋์ ๊ฐ์ ธ์ค๊ธฐ
MSDEPLOY_RENAME_LOCKED_FILES=1
๊ฐ ์ค์ ๋์ด ์์ต๋๋ค.ํต์ฌ ๋ฌธ์ ๋ DLL์ด ์ฌ์ฉ ์ค์ด๋ผ๋ ๊ฒ์ ๋๋ค.
@ChuckkNorris ์ ๋ํ ์ต์ ์ ๋ณด๋ https://github.com/Microsoft/vsts-tasks/issues/1607 ์ ์ฐธ์กฐํ์ธ์.
@davidebbo ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค, David. ๋๋ ๊ทธ ์ค๋ ๋๋ฅผ ๋ณด์๊ณ ๋ด๊ฐ ์๋ํ ๋ง์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์์ง ๋ฏธํด๊ฒฐ ์ํ์ด๊ณ ์ค๋ฅ๊ฐ ์ฌ์ ํ ๋๋ฆฌ ํผ์ ธ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋๋ผ ๊ณง ์์ ์ฌํญ์ด ์์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋์ต๋๋ค. ์ด ๋ฌธ์ ๋ ๊ฒฐ๊ตญ 2๋ ๋๊ฒ ๊ณต๊ฐ๋์์ต๋๋ค.
@ChuckkNorris ์ฆ์์ ๋์ผํ์ง๋ง ๋์ผํ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
app_offline.htm
๋์๋ฌธ์์ ๊ด๋ จ๋ ์๋ ๋ฌธ์ ๋ก ์ธํด ์์ ํ ๋ฌด์๋์์ต๋๋ค. ๊ทธ๊ฒ์ ์ ์ ๋์ ์์ ๋์์ต๋๋ค.app_offline.htm
๊ฐ ์์ฑ๋ ๋ Core๊ฐ ์ข
๋ฃ๋๋ ๋ฐ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก msdeploy๊ฐ ์ถฉ๋ถํ ์ค๋ ๊ธฐ๋ค๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์๋ ํ์๋ฅผ ๋๋ฆฌ๋ ๊ฒ์
๋๋ค.๋ฐฉ๊ธ VS 2017์ 15.3์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ .NET core 2.0 SDK๋ฅผ ์ค์นํ์ต๋๋ค. VS์์ ๊ฐ๋จํ MVC ์ฑ์ ๋ง๋ค์์ต๋๋ค. netcoreapp1.1์ ๋์์ผ๋ก ํ์ต๋๋ค. Azure์ ๊ฒ์ํ๋๋ฐ ๋ชจ๋ ๊ฒ์ด ์ ์์ด์์ต๋๋ค. newcoreapp2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๋ค์ ๋ชจ๋ ๋๊ฒ ํจํค์ง๋ฅผ 2.0(Microsoft.AspNetCore, Microsoft.AspNetCore.Mvc ๋ฑ)์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ต๋๋ค.
Azure์ ๊ฒ์ํ๋ ค๊ณ ํ ๋(์ฆ, 1.1 ๋ฎ์ด์ฐ๊ธฐ) ๋ค์ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
Error : Web deployment task failed. (Web Deploy cannot modify the file 'Microsoft.ApplicationInsights.AspNetCore.dll' on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.)
@DaveSlinn ์ https://github.com/Azure/app-service-announcements/issues/24 ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ด 2.0 ์ฑ์ด git์ ํตํด ๋ฐฐํฌ๋๊ณ ํ์ผ ์ฌ์ฉ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด MvcViewComplication์ ๋นํ์ฑํํด์ผ ํ์ต๋๋ค.
https://github.com/Microsoft/vsts-tasks/issues/5259
https://github.com/Microsoft/vsts-tasks/issues/1607#issuecomment -349115532
@davidebbo , ์ด ๋ฌธ์ ๋ฅผ ์ข
๊ฒฐํ ์ ์์ต๋๊น?
์น ๋ฐฐํฌ๋ฅผ ์ํ ์ฌ์๋ ๋์ฐ๋ฏธ๋ฅผ ์ถ๊ฐํ์์๋ ๋ถ๊ตฌํ๊ณ ์ด ๋ฌธ์ ๋ ์ง์๋ฉ๋๋ค.
์ด๊ฒ์ FTP ํผ๋ธ๋ฆฌ์ฑ์๋ ์ํฅ์ ๋ฏธ์น๋ค๋ ๋ช ๋ฐฑํ ์ฌ์ค์ ์ง์ ํ๊ณ ์ถ์์ต๋๋ค.
@jeremycook FTP๋ App_Offline ์ฌ์ฉ์ ์ํ ์๋ํ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค. ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ค๋ฉด ํด๋น ํ์ผ์ ์๋์ผ๋ก ์์ฑํด์ผ ํ๋ฉฐ, ๊ทธ ํ์ ํ์ผ์ ๋ณต์ฌํ ์ ์์ต๋๋ค.
@davidebbo ๋ ์ถฉ๋ถํ ๊ณต์ ํ์ง๋ง Visual Studio์ ๊ฒ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ FTP๋ฅผ ํตํด ๊ฒ์ํ๋ฉด ์ ๋๋ก ์๋ํด์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ง๋ ๋ด๊ฐ ์๋ชป๋ ์์น์ ๊ฒ์ํ๊ณ ์์ต๋๊น?
@jeremycook ์์งํ FTP ๋ฐฐํฌ๋ฅผ ํ ๋ VS๊ฐ ๋ฌด์์ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋น์ ๋ฐํ ์๋ ์์ง๋ง ASP.NET๋ณด๋ค VS ์ง๋ฌธ์ ๋ ๊ฐ๊น์ต๋๋ค.
๋ถ๋ฆฌํ๊ธฐ๋ ํ์ง๋ง App_Offline.html์ ์๋์ผ๋ก ๋ง๋ ๋ค์ VS์์ FTP ๊ฒ์ํ๋ฉด ๋ฐฐํฌ๊ฐ ์ฑ๊ณต์ ์ธ์ง ํ ์คํธํ๋ ๊ฒ์ด ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค.
@vijayrkn FTP ๋ฐฐํฌ ์ค VS ๋์์ ๋ํด ์ธ๊ธํ ์ ์์ต๋๊น?
VS์์ App Service๋ก์ FTP ๊ฒ์๋ App_Offline์ ์ง์ํ์ง ์์ต๋๋ค.
@vijayrkn ok, ๊ทธ๋์ ์ค์ฉ์ ์ธ ๋ชฉ์ ์ ์ํด ์ฌ์ฉ์๊ฐ ๋ฐฐํฌ ์ ์ ์ฌ์ดํธ๋ฅผ ๋ช ์์ ์ผ๋ก ์ค์งํ์ง ์๋ ํ FTP๋ฅผ ํตํ .NET Core ๋ฐฐํฌ๋ ์ง์๋์ง ์๋๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ์ค๋ฅธ์ชฝ?
@davidebbo - ๋ค, ๋ง์ต๋๋ค.
IIS ์น ๋ฐฐํฌ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ VSTS ๋ฆด๋ฆฌ์ค์์ IIS๋ก asp.net ์ฝ์ด 2.0 ์น ์ฑ์ ๋ฐฐํฌํ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฌ์ฉ ์ค์ธ ํ์ผ๋ก ์ธํด ์ญ์ ์ ์คํจํ์ต๋๋ค. ์ฑ ์คํ๋ผ์ธ ์ต์ ์ด ํ์ฑํ๋์์ต๋๋ค.
@davidebbo @vijayrkn @shirhatti ์ด ๋ชจ๋ ๊ฒ์ด ์ฝ๊ฐ ์ฐ์ธํฉ๋๋ค. FTP/XCOPY๋ฅผ ์๋์ํฌ ๊ณํ์ด ์์ต๋๊น? FTP/XCOPY/ROBOCOPY/๋ฑ์ ํตํด ๊ตฌ์ ๋ฐฉ์์ ๋ฐฐํฌํ๋ ๋ฐ ์ค์ ์ ๋ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ด์ด์ผ ํฉ๋๊น?
์ ๋ ์ด ํํฐ์ ๋ฆ์์ง๋ง ๋ณด๊ณ ํ๊ณ ์ถ์ ๋ช ๊ฐ์ง ์ฌํญ์ด ์์ต๋๋ค.
VS 2017 ์ํฐํ๋ผ์ด์ฆ
asp.net 4.6.xx
์๋ฒ๋ ์๋ฒ 2012 R2์ IIS 8.5์
๋๋ค.
SQL ์๋ฒ ์ ํ dll์ด ์ ๊ฒจ ์๊ณ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ msdeploy๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์๋ฅผ ์ํํ ๋ ์ด๋ฌํ ์ ๊ธ์ด ๋ฐ์ํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์ด์ ๋ฐฐํฌ์ ์ผ๋ถ๋ง ์คํ๋์ด ์น ์ฌ์ดํธ๊ฐ ์์๋ฉ๋๋ค.
SQL ์ ํ dll์ ์ฑ bin ํด๋์๋ง ์ ๊ฒจ ์์ต๋๋ค.
dll ํ์ผ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ๋ค์ ๊ฒ์ํ ์ ์์ต๋๋ค.
SQL ์ ํ ํจํค์ง์๋ ๊ด๋ฆฌ๋์ง ์๋ dll์ ๋ก๋ํ๊ธฐ ์ํ ์ฝ๋๊ฐ ์์ต๋๋ค.
์ ๊ทธ์ง ์๋๋ก ๋ณ๊ฒฝํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ์ด ๊ฐ๋ฅํ๋ค๋ฉด.
์ฌ๋๋ค์ด ์ฌ์ดํธ๋ฅผ ๋ค์ ์์ํ๊ฑฐ๋ ์คํ๋ผ์ธ์ผ๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ ๋ณด์์ง๋ง msdeploy์์ ์ด์ ๋ํ ์ค์ ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๋ด๊ฐ ๋ณธ xml์ ๋ด ํ์ผ์ ์์ต๋๋ค.
Microsoft์์ ๊ฒ์ํ๋ sql types ํจํค์ง์ ๋ ๋์ ์ง์นจ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๋ด ๋ฌธ์ ์ ๋ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์์ ์ด ๋ฌธ์ ์ ๊ฒ์ํฉ๋๋ค. ๋๋ ๋ํ VSTS์ ๋ํ ๊ฒ์ด์ง๋ง ๋์ผํ ์ฃผ์ ์ ๋ํด ์๋ ๋ฌธ์ ๋ฅผ ๋ฐ๋์ต๋๋ค. Visual Studio์์ ์ง์ ํผ๋ธ๋ฆฌ์ฑํ๊ณ ์์ต๋๋ค.
https://github.com/Microsoft/vsts-tasks/issues/5259#issuecomment -350940342
์ด๊ฒ์ ์ ์๊ฒ ์จ/์คํ ๋ฌธ์ ์์ง๋ง ์ต๊ทผ์ ๊ฐ์ ๋ก ๋ฐํ๋์์ผ๋ฉฐ ์ ์ฑ ์๋น์ค ์ฌ์ดํธ ์ค ํ๋์์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์๋์์ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ์ฌ์ดํธ๋ '๊ธฐ๋ณธ' ์์ค ์๋น์ค์์ ํธ์คํ ๋๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค๋ฅธ ์ฑ์์ ์ฌ์ฉํ๋ ์ฌ๋กฏ์ด ์์ต๋๋ค.
์ด๊ฒ์ .net core 2 mvc ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฒ์ ๋๋ค.
ํ ๊ฐ์ง ์๊ฐ: ์น ์ฑ์ ์ผ๋ถ์ธ ์ผ๋ถ ํ์ผ์ ๋ชจ๋ ๊ฒ์(์: sql ์ ํ)์์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ms deploy๋ ๋ชจ๋ ๋ฐฐํฌ์์ ์ด๋ฅผ ๋์ฒดํ๋ ค๊ณ ํฉ๋๋ค.
๋ณ๊ฒฝ๋์ง ์์ ํ์ผ์ ๋ค์ ๋ณต์ฌํ์ง ์๊ณ ์
๋ฐ์ดํธ๋ฅผ ๋ ์๊ณ ๋น ๋ฅด๊ฒ ๋ง๋ค๊ณ ํ์ผ ์ ๊ธ์ ์๋ง์ผ๋ก ๋ง๋ค ํ์๊ฐ ์๋๋ก ์ด๋ค ์ข
๋ฅ์ ๊ฒ์ฌ๊ฐ ๋ฐ์ํด์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ๋ฌ ๊ฐ์ง ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
๋ค๋ฅธ ํ๋๋ ํ์ผ์ ์ ๊ทธ๋ ํญ๋ชฉ๊ณผ ์ ๊ธ์ ํด์ ํ๋ ์ด์ ๋ฐ ๋ฐฉ๋ฒ์ ๋ ์ ์๋ณํ๋ ๊ฒ์
๋๋ค.
ํ์ค ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์ผ๋ถ๋ก ๊ฐ์ ธ์ต๋๋ค.
@figuerres ์ ๋ ์ง๊ธ ๋ช ๋ฌ ๋์ ๊ทธ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ๊ณ ์ถ์์ต๋๋ค. ์ ๊ธ ๋ฌธ์ ๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ โโ๋ณต์ฌ๋ก ์ธํด ๋ฐฉ์ง๋์ง๋ง ~/bin
์์ ํด๋น ๋ค์ดํฐ๋ธ DLL์ ๋ก๋ํ๋ฉด ์ ๊ธ ๋ฌธ์ ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ ์ฌ์ ์ธ ์๋ฃจ์
์ด ์์ง๋ง ์์ ํ ์์ ํ ์๋ฃจ์
์ธ์ง ํ์คํ์ง ์์ต๋๋ค. https://stackoverflow.com/questions/47796553/is-it-safe-to-manually-copy-native-dlls-to- ๊ทธ๋ฆผ์ ๋ณต์ฌ ๋๋ ํฐ๋ฆฌ
NuGet ํจํค์ง์ ๋ํ ์ค๋ช ์๊ฐ ์ ๊ธ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋ ๋ ๋์ ๋ฐฉ๋ฒ์ ์ ๊ณตํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
@figuerres ์ฐธ๊ณ ๋ก ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ฝ๋์ ๋ํ ์คํ ์ค๋ฒํ๋ก ์ง๋ฌธ์ ์ฐธ์กฐํ์ธ์.
์์ ๊ด๋ฆฌ์์์ dotnet.exe ์ข ๋ฃ
์ฌ๊ธฐ ์ํ๊ฐ ์ด๋ป์ต๋๊น? 3๋ ์ด ์ง๋ฌ์ง๋ง ์์ง ๊ณ ์ณ์ง์ง ์์๋ค. ์๋์ผ๋ก ์๋ฒ๋ก ์ด๋ํ์ฌ ์น ์ฌ์ดํธ๋ฅผ ์ค์งํด์ผ ํฉ๋๋ค.
3 ๋
? ์ด ๋ฌธ์ ๋ 2017๋
8์์ ๋ณด๊ณ ๋์์ต๋๋ค. ์ข์์ 1๊ฐ๊ฐ ๊บผ์ก์ต๋๋ค.
2018๋
4์ 23์ผ ์์์ผ ์คํ 8:56 Oliver Janik [email protected]
์ผ๋ค:
์ฌ๊ธฐ ์ํ๊ฐ ์ด๋ป์ต๋๊น? 3๋ ์ด ์ง๋ฌ์ง๋ง ์์ง ๊ณ ์ณ์ง์ง ์์๋ค. ์๋์ผ๋ก ๊ฐ์ผํด์
์๋ฒ์ ์ฐ๊ฒฐํ๊ณ ์น์ฌ์ดํธ๋ฅผ ์ค์งํฉ๋๋ค.โ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/aspnet/Home/issues/694#issuecomment-383768450 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe-auth/AAXhfrhOTvZn2qb4kU-Y1Kg9I-IQKD9yks5trnhXgaJpZM4FJp_R
.
์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์๋ "pekkah๊ฐ 2015๋ 6์ 23์ผ์ ์ด ํธ๋ฅผ ์ด์์ต๋๋ค"๋ผ๊ณ ๋์ ์์ต๋๋ค.
๋ค๊ฐ ์ณ์. ๋ด ์๋ชป. ์ด๋ฉ์ผ ์ฒด์ธ์ ๋ง์ง๋ง ํ์์คํฌํ๋ง ๋ณด์์ต๋๋ค.
2018๋
4์ 23์ผ ์์์ผ ์คํ 9:06 Oliver Janik [email protected]
์ผ๋ค:
์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์๋ "pekkah๊ฐ 2015๋ 6์ 23์ผ์ ๋๊ธ์ ๋จ๊ฒผ์ต๋๋ค"๋ผ๊ณ ๋์ ์์ต๋๋ค.
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/aspnet/Home/issues/694#issuecomment-383769982 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe-auth/AAXhfgwYG-jLjnoJF7MCMtzbbfxSZkt2ks5trnqXgaJpZM4FJp_R
.
๐ ๋ก์์ ๋ซ๋๋ค.
@Eilon ์ฃ์กํ์ง๋ง ํ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์์ง ๋ฏธํด๊ฒฐ์ธ๊ฐ์?
๐ ๋ก์์ ๋ซ๋๋ค.
ํ์ง๋ง ์ฌ์ ํ ๋ฌธ์ .. ? (๋น Azure ๋ฐฐํฌ์์๋)
๊ฐ์์ฑ์ ๋์ด๊ธฐ ์ํด ์ ๋ฌธ์ (#3719)๋ฅผ ๋ง๋ค์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ชจ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์์ ์ด๋ก ์ด ์ณ๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ๋์๋ฌธ์ ๊ตฌ๋ถ ๋ฒ๊ทธ๋ ANCM์ ์ต์ ๋ฒ์ ์์ ํ๊ท์ด๊ณ ํด๋น ๋ฒ์ ์ 12์์ Azure App Service์ ๋ฐฐํฌ๋์ด ์ฌ์ฉ์๊ฐ ๊ฐ์๊ธฐ ์ด ๋ฌธ์ ์ ๋ถ๋ช์ณค์ต๋๋ค.
๊ณํ์ ASP.NET Core ํ์์ ANCM ์์ ์ฌํญ์ ๊ฐ์ ธ์ App Service์ ๋ฐฐํฌํ๋ ๊ฒ์ ๋๋ค. ETA๋ ์์ง ์์ง๋ง 1์์ ์์ ๊ฒ์ ๋๋ค.