Aspnetcore: IIS -> рд▓реЙрдХ .NET рдХреЛрд░ рдПрдкреНрд▓реАрдХреЗрд╢рди DLL рдлрд╝рд╛рдЗрд▓

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЬреБрд▓ре░ 2016  ┬╖  114рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/aspnetcore

рдЬрдм рдореИрдВ рдЙрддреНрдкрд╛рджрди IIS рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓ рдкрд░ FTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП .NET рдХреЛрд░ рдбреАрдПрд▓рдПрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд▓реЙрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓реЙрдХ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IIS рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВред
рдЖрд╡реЗрджрди рдкрд░ рд░реЛрдХ рдХреЗ рдмрд┐рдирд╛ рддреИрдирд╛рддреА рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

affected-medium area-servers bug servers-iis severity-nice-to-have

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

ЁЯСН

рдЕрддрд┐рд╡реНрдпрд╛рдкреА рд░реАрд╕рд╛рдЗрдХреНрд▓рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рд╣реИред

рд╕рднреА 114 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рджреЗрдЦреЗрдВ app_offline.htm: https://docs.asp.net/en/latest/hosting/aspnet-core-module.html#asp -net рдХреЛрд░ рдореЙрдбреНрдпреВрд▓, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рддрд╣рдд рдСрдлрд╝рд▓рд╛рдЗрди-htm

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ PowerShell рддрд░реАрдХрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк IIS рдПрдбрдорд┐рди cmdlets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://technet.microsoft.com/en-us/library/ee790599.aspx

Stop-WebAppPool -Name $appPoolName

... deploy ...

Start-WebAppPool -Name $appPoolName

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ рдЯреНрд░реЗрдЪрд░ ред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдкрд┐рдЫрд▓реЗ ASP.NET MVC рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ?

@GuardRex рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ

рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ msdeploy.exe рдФрд░ Azure рдХреЗ рд╕рд╛рде 'рд╕рд┐рд░реНрдл рдХрд╛рдо' рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрджрд┐ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рд╛рдЗрдЯ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред -enableRule:AppOffline рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреВрд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд▓рд╛рдЗрди рд╣реИ рдЬреЛ рдХрд┐ рдПрдХ рдорд╣рд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рд╣рд░ рджрд┐рди рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВред

Http://stackoverflow.com/q/40276582/14131 рднреА

@chuchuva рд╢рд╛рдпрдж, рд▓реЗрдХрд┐рди рд╕рднреА рдЬрд╛рджреВ рдПрдХ рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред ASP.NET рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдиреЗ рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬрдЯрд┐рд▓ рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИред

рдЬрд╛рджреВ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдореИрдВ ASP.NET рдХреЛрд░ рдХреЗ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рдмрд╛рдж рдЕрдм рдЗрд╕реЗ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВ ...

@HarelM рдХреЗ рд╕рд╛рде рд╕рд╣рдордд рд╣реБрдПред рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рд╣реИред рд╣рдо рдкреБрд░рд╛рдиреЗ MVC рдХреЗ рд╕рд╛рде рджрд┐рди рдореЗрдВ рд▓рдЧрднрдЧ 10 рдмрд╛рд░ рддреИрдирд╛рддреА рдХрд░рдиреЗ рд╕реЗ рд╢рд╛рдпрдж рд░рд╛рдд рдореЗрдВ рдПрдХ рджреИрдирд┐рдХ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рд╣рдо рдЗрд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд▓реЗрддреЗ рд╣реИрдВ рддреЛ рдХреЛрд░ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдирд╛рд░рд╛рдЬ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рдЬрдмрдХрд┐ рд╢реЛ рд╕реНрдЯреЙрдкрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЛрд░ рдЕрдкрдирд╛рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдШрд░реНрд╖рдг рдЬреЛрдбрд╝рд╛ рд╣реИред

ЁЯСН

рдЕрддрд┐рд╡реНрдпрд╛рдкреА рд░реАрд╕рд╛рдЗрдХреНрд▓рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рд░реЛрдб рдореИрдк рдкрд░ рд▓рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ? рдпрджрд┐ рд╡реЗ рд╢реВрдиреНрдп рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ-рд╕реНрд▓реЙрдЯ рд░рдгрдиреАрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ .Net рдХреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдХрд┐рд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ / рдЕрдиреБрдЪрд┐рдд рд╣реИред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╣реЛрдиреЗ рд╕реЗ .рдиреЗрдЯ рдХреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ред рдиреЗрдЯ рдХреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рддреЗрдЬреА рд╕реЗ рдЕрдкрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред

рд╣рдо рднреА рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдВрджрд░ app_offline.htm рдбрд╛рд▓рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрд╕реНрдкреИрдХреНрдЯрдХреЛрд░ рдкрд░ рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ 'рдлреАрдЪрд░' рдХреЛ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЛ рд╣рд░ рдмрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд▓рд╛рдЗрди рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдорд╛рдирд╛ рдЬрд╛рдП!

рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЯреАрдо рдХреЗ рдиреЗрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдмреБрд░рд╛ рд╣реИ - рдХреНрдпрд╛ рд╡реЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╢рд╛рдирджрд╛рд░ AspNetCore рдкрд░ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдШрдВрдЯреЗ рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ!

рдХреНрдпрд╛ рдЖрдк рдПрдлрд╝рдЯреАрдкреА рдпрд╛ xcopying рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрд╛ рдЖрдк webdeploy рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореИрдВ webdeploy рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ IIS рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рд╡реЗрдм рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд╣рд▓реЗ (рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдорд╛рд░рдирд╛), рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

@DaleMckeown рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рдкреАрдЫреЗ рдХрдИ рд╕рд░реНрд╡рд░ рд╣реЛрдВрдЧреЗред рдлрд┐рд░ рдЖрдк рдПрдХ рд╕рд░реНрд╡рд░ рдХреЛ рдЦреАрдВрдЪреЗрдВрдЧреЗ, рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдкрд░ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗред рдмреЗрд╢рдХ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ), рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдорд┐рдирдЯ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрдк 30 рдХреЗ рднреАрддрд░ рдмреИрдХрдЕрдк рд▓реЗ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

@DaleMckeown

рдореИрдВ webdeploy рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ IIS рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдмрдбрд╛рдЗрдк рдХреЗ рдХрд╛рдо рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреИрдирд╛рддреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рд▓реЙрдХ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдФрд░ рдРрдк рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред рдХреНрдпрд╛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ @ рд╢рд┐рд░рд╣рдЯреНрдЯреА рджреНрд╡рд╛рд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ?

@ajeckmans

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рд╡реЗрдм рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд╣рд▓реЗ (рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдорд╛рд░рдирд╛), рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк xcopy рддреИрдирд╛рддреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдмрдбрд╛рдЗрдк рдХреЗ рдХрд╛рдо рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреИрдирд╛рддреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рд▓реЙрдХ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдФрд░ рдРрдк рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред рдХреНрдпрд╛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ @ рд╢рд┐рд░рд╣рдЯреНрдЯреА рджреНрд╡рд╛рд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж рдбреЗрд╡рд┐рдб - рдЬреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ (рдЖрдИрдЖрдИрдПрд╕ рдореЗрдВ рд╕рд╛рдЗрдЯ рдФрд░ рдРрдк рдкреВрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реЛрдХрдирд╛)ред рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдореИрдВ рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреВрдВ?

@DaleMckeown рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА untilI рд╕рддреНрдп рдХрд╛ рд╕реНрд░реЛрдд рдЦреЛрдЬрдиреЗ рдХреЗ https://github.com/Microsoft/vsts-tasks/issues/5259#issuecomment -+рейрек,ремреи,режреи,релрежрей

@davidfowl рд╣рдо

@ajeckmans

рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ web.config рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдЬрдм web.config рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ IIS рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реЗрд╡рд╛ рджреЗрдЧрд╛ред рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЗрд╡рд▓ рджрд┐рди рдФрд░ рд░рд╛рдд рд▓рдЧрд╛рддрд╛рд░ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреА 30 рд╡реАрдВ рдЦрд┐рдбрд╝рдХреА рдирд╣реАрдВ рдЦреБрд▓рддреА рд╣реИред

@DaleMckeown

@Ajeckmans рдХреА рд╕рд▓рд╛рд╣ рдХреЗ рдмрд╛рдж рдпрджрд┐ рдЖрдк рдХрднреА рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PS рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдорд╛рддрдо рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рд╡реЗрдм рдлрд╛рд░реНрдо рдкрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдореЗрдВ AppPools рдбреНрд░реЙрдк рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, https://github.com/guardrex/aspnetcore-iis-ps-publish ... рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВ рди рдХрд┐ рдЙрддреНрдкрд╛рджрди-рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВред рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЦреЗрд▓рд╛, рд▓реЗрдХрд┐рди рдпрд╣ (рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ) рдЕрднреА рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ рдЧрд╛рд░реНрдбреНрд░реЗрдХреНрд╕ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдкрд╣рд▓реЗ dir рдореЗрдВ рдПрдХ app_offline.htm рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо web.config рдХреЛ рд░рд┐рдореВрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, web.config рдХреЛ рд╡рд╛рдкрд╕ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ app_offline (рд╕рднреА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде) рд╣рдЯрд╛рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╕рд┐рд░реНрдл рд╡реЗрдмрд╕рд╛рдЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ app_offline рдлрд╝рд╛рдЗрд▓ рд░рдЦрдиреЗ рд╕реЗ dll рдкрд░ рд▓реЙрдХ рдирд╣реАрдВ рдЯреВрдЯрддрд╛ рд╣реИред рд╣рдореЗрдВ web.config рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдПрдХ рдХреНрд░рд┐рдпрд╛ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдкреБрд░рд╛рдиреЗ asp.net рдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдЬреИрд╕реЗ рдкреБрд░рд╛рдиреЗ рд╡реЗрдмрдкреГрд╖реНрда рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

@ajeckmans рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм web.config рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ IIS рддреБрд░рдВрдд рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдЯреЗрдЯрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░реЛ рдФрд░ рджреЗрдЦреЛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ ...

  1. App_offline.htm рдЬреЛрдбрд╝реЗрдВред
  2. рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рд╕рд╛рдЗрдЯ app_offline.htm рдкрд░реЛрд╕рддреА рд╣реИ ред
  3. Web.config рдХреЛ рдмрд╛рд╣рд░ рдЦреАрдВрдЪреЛред
  4. рдПрдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ (рдЬреИрд╕реЗ, http://localhost:<PORT>/<ASSEMBLY_NAME>.deps.json ... рдкреЛрд░реНрдЯ рдФрд░ ASSEMBLY_NAME рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди)ред
  5. рдпрджрд┐ рдЖрдкрдХреА рд╕реНрдЯреЗрдЯрд┐рдХ рдлрд╛рдЗрд▓ рдореЙрдбреНрдпреВрд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рддреЛ рдЖрдкрдХреЛ рдбрд┐рдкреНрд░реЗрд╕рди рдлрд╛рдЗрд▓

рдореИрдВ рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ ...

<configuration> 
 <system.webServer> 
   <modules> 
     <remove name="StaticFileModule" /> 
   </modules> 
 </system.webServer> 
</configuration>

... рдЪреВрдВрдХрд┐ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗ рдФрд░ рд╕рдВрднрд╡рдд: рдЕрдиреНрдп рдЖрдХреНрд░рдордг рд╡реИрдХреНрдЯрд░ рдкреЗрд╢ рдХрд░реЗрдВрдЧреЗред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЧреИрд░ рдЬрд░реВрд░реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рднреА рд╣рдЯрд╛рдиреЗ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА web.config рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рддреИрдирд╛рддреА рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрджрдо рдХреЗ рд╕рд╛рде рдЕрдЬреНрдЮрд╛рдд рдкрд╛рдиреА рдореЗрдВ рд╣реЛ рд░рд╣реА рд╣реИред рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рддрд╣рдд рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХрднреА рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдорд░реНрдерд┐рдд рд╣реИред рдореИрдВ рдкреАрдПрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрдкрдкреВрд▓ рдХреЛ рдиреАрдЪреЗ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд░рдгрдиреАрддрд┐ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЙрд╕рдХреЗ рдкреНрд░рддрд┐ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдХрд╛ рдПрдХ рдиреЛрдЯ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП ... рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ рдХреБрдЫ рднреМрд╣реЗрдВ рдмрдврд╝рд╛рддрд╛ рдерд╛ред рдЬрдм рдЙрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ wwwroot рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд╛рдкрд╕ рд░рдЦрдиреЗ рд╕рд╣рд┐рдд рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА, рджреЗрдЦреЗрдВ ...

рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП: IIS рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВред рд╕реНрдерд╛рди рд╕реНрдерд╛рди (IISIngrgration 158)
web.config wwwroot (IISIntegration 164) рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рд╣реЗрдб-рдЪреЗрдХ

[рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ] рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХрд╛ (рдЕрд╕рдорд░реНрдерд┐рдд) рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ: web.config рдХреЛ wwwroot рдкрд░ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рдПрдВ, рдлрд┐рд░ рдЙрд░ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдлрд┐рд░ рднреА рде ... рдЗрд╕ рддрд░рд╣ рд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рдХреЛ рддреЛрдбрд╝рдирд╛ рдбрд░рд╛рд╡рдирд╛ рд╣реИред

рдпрд╣ рдореБрдЭреЗ рдФрд░ рднреА рдЙрд▓рдЭрди рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

AspNetCore рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ IIS рдореЗрдВ рд╡реЗрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд╢рдВрд╕рд╛ рдХреНрдпрд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХ рд╕реЗ рдмрдЪ рд╕рдХрддреА рд╣реИ?

рдореЗрд░реА рднреА рдЬрд╛рдирдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реЛрдЧреАред рдпрд╣ рдореЗрд░реЗ рд╕рдВрдЧрдарди рдореЗрдВ .net рдХреЛрд░ рдЧреЛрдж рд▓реЗрдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдореБрдЦ рдорд╛рд░реНрдЧ рдмрди рд░рд╣рд╛ рд╣реИред

рдЬрдм рдореЗрд░рд╛ .net рдХреЛрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореИрдВ рдПрдХ рдирдП рдмрд┐рд▓реНрдб рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ DLL рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдРрдк рдкреВрд▓ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдбреАрдПрд▓рдПрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдРрдк рдкреВрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ .Net рдХреЛрд░ рдореЗрдВ рдХреЛрдИ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдореИрдВ рдРрдк рдкреВрд▓ рдХреЛ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛ рдирдП рдмрд┐рд▓реНрдб / рдбреАрдПрд▓рдПрд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .Net рдврд╛рдВрдЪреЗ рдореЗрдВ рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд░реНрдерд┐рдд рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, .Net рдХреЛрд░ рдХреЗ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдореЗрдВ 2 рд╕рд╛рд▓ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

рдХрд┐рд╕реА рднреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред

@ рдЧрд╛рд░реНрдбреНрд░реЗрдХреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ dll рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IIS (рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рд▓реЙрдХ рд╣реИ) рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд░рд╛рд╡рдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рд╣реЙрдЯрдлрд╝рд┐рдХреНрд╕ рдХреЛ рдзрдХреНрдХрд╛ рдирд╣реАрдВ рджреЗ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдбрд░рд╛рд╡рдирд╛ рд╣реИред рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ :)

@ shahjay748 рдЕрдкрдиреА рд╕рд╛рдВрд╕ рдХреЛ рд░реЛрдХрдХрд░ рди рд░рдЦреЗрдВред рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдореИрдВ рдРрдк рдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд░рдЦреВрдБрдЧрд╛ рдФрд░ рдмрд╕ рдПрдХ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рдбрд╛рд▓реВрдБрдЧрд╛ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдиреАрдЪреЗ рдЦреАрдВрдЪреВрдБрдЧрд╛ (рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ)ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдпреЛрдЧреНрдп рдЪреАрдЬрд╝ рд╣реИред рдиреЗрдЯ рдХреЛрд░ рд╕рднреА рдирдП рдЖрдзреБрдирд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдмрд╕ рдирдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдХреЙрдкреА рдХрд░рдХреЗ рдРрдк рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдзрдХреЗрд▓рдирд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ) рдереЛрдбрд╝рд╛ рд░рд╣рд╕реНрдпрдордп рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдХреМрди рд╕рд╛cc рд╣рдорд╛рд░реА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдкреБрд░рд╛рдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдпрд╛ рд╣реИ :)

рдореИрдВ рдХреНрдпрд╛ рдХрд░реВрдВ (рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рд╣реИ), рд╕рд╛рдЗрдЯ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ iis рдореЗрдВ рдкрде рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ

рд╣рдордиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рдЬрд╛рдВрдЪ рдХреАред рдореИрдВ рдЬреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╕реЗ рдПрдПрдирд╕реАрдПрдо рддреИрдирд╛рдд рдЖрд╡реЗрджрди рдореЗрдВ рдХреЛрдИ рдлрд╛рдЗрд▓ / рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рд╡реЗрдмрджрд┐рдкрд▓ рдХреЗ рд╕рд╛рде рд╣реА рдПрдХ рдореБрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреИрдирд╛рддреА рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ app_offline рдЧрд┐рд░рд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдкрдбрд╝рд╛ред

рдЙрд╕ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд PowerShell рд╕рд╛рдЗрдб рдиреЛрдЯ рдЬреЛрдбрд╝рдирд╛: рдРрдк рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдкрд░ рд▓реЙрдХ рд╣рдореЗрд╢рд╛ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ ... рдореБрдЭреЗ рдХрднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ (

@ bpetersen1 ... рдЖрдкрдХреЗ "рд╕реНрдЯреЗрдЬрд┐рдВрдЧ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ

рдпрд╣ рдЕрднреА рднреА рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ ... рд╣рдордиреЗ рдЖрдИрдЖрдИрдПрд╕ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕рдорд╛рдзрд╛рди рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред

рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдмрдиреЗ рд░рд╣реЗрдВред

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ FTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдЗрд╕ рдкрд░ Microsoft рдХреА рдХреНрдпрд╛ рд╕рд▓рд╛рд╣ рд╣реИ ?!

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ FTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдЗрд╕ рдкрд░ Microsoft рдХреА рдХреНрдпрд╛ рд╕рд▓рд╛рд╣ рд╣реИ ?!

рдПрдХ appoffline.htm рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбреНрд░реЙрдк рдХрд░реЗрдВ, рдлрд┐рд░ ftp рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред

@davidfowl рд╣рд╛рдБ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВ рдЕрднреА рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣рд╛ рд╣реВрдБред IIS рдХреЛ рд▓реЙрдХ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж - рдмреНрдпрд╛рдЬ рд╕реЗ рдмрд╛рд╣рд░ рдЖрдк рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреИрд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕ рд╕рд░рд╛рд╣рдирд╛ рдкрд░ MIcrosoft рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдбрд╝реА; рдореИрдВ рдЗрд╕реЗ Google рдкрд░ рдирд╣реАрдВ рдвреВрдБрдв рд╕рдХрддрд╛ред рдзрдиреНрдпрд╡рд╛рджред

@ niico100 рдореВрд▓ рд░реВрдк рд╕реЗ, рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд░реНрдл рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рддреА рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдПрдХ рдмреИрдХрдЕрдк рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реВрдВред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ appoffline.htm рдбрд╛рд▓реЗрдВред
рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧреАред рдореИрдВ рд░реЛрдмрдХреЙрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдРрдкрд╡реЗрдпрд░ рд╕реЗ рддреИрдирд╛рддреА рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рдЗрдЯ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдЗрдЯ рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рддрд╛ рд╣реИ:
https://github.com/IsraelHikingMap/Site/blob/master/Scripts/Deploy.ps1
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдкреНрд░рд╡рд╛рд╕ рдХрд░реЗрдВрдЧреЗ рддреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдбреЙрдХрдЯрд░ рдЗрд╕ рд╕рднреА рдЧреИрд░-рд╕рдордЭ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ ...
рдпрд╣ Stop-WebAppPool рдФрд░ Start-WebAppPool рд╢рдХреНрддрд┐рдпрд╛рдБ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, WebDeploy рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп IIS рдХреЗ рдЦрд┐рд▓рд╛рдл рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдЕрднреА рднреА рдмрдВрдж рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рд╡реАрдПрд╕ рдкреНрд░реА / рдкреЛрд╕реНрдЯ рдмрд┐рд▓реНрдб рдЗрд╡реЗрдВрдЯреНрд╕ рд╕реЗ рдКрдкрд░ рдХреЗ рдкреЙрд╡рд░рд╢реЗрд▓ рдХрдорд╛рдВрдбрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛, рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ 32-рдмрд┐рдЯ рдкреЙрд╡рд░рд╢реЗрд▓ 64-рдмрд┐рдЯ рдЖрдИрдЖрдИрдПрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдХрд┐рд╕реА рднреА рддрд░рд╣, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдореЗрд░реА ASP.Net рдХреЛрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреВрд░реНрд╡ / рдкреЛрд╕реНрдЯ рдмрд┐рд▓реНрдб рдЗрд╡реЗрдВрдЯ рд╣реИрдВ:

рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд╛рдг рдШрдЯрдирд╛:
echo "App Offline" /a > $(ProjectDir)app_offline.htm

рдкреЛрд╕реНрдЯ-рдмрд┐рд▓реНрдб рдЗрд╡реЗрдВрдЯ:
del $(ProjectDir)app_offline.htm

рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╣рд╛рдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдСрдХреНрдЯреЛрдкрд╕ рдХреА рддреИрдирд╛рддреА рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реАрдЖрдИ рддреИрдирд╛рддреА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ "рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ", iis рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде azure devops рд░рд┐рд▓реАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЕрднреА рднреА рдЕрдХреНрд╕рд░ рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдмреИрдк рдХреЛ рд░реЛрдХрдиреЗ, рдРрдк рдбреЛрдореЗрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рдж рднреА, рдлрд╛рдЗрд▓реЗрдВ рдЕрднреА рднреА рдЕрдВрджрд░ рд╣реИрдВ рдЙрдкрдпреЛрдЧред

рдпрд╣ рд╢рд╛рдпрдж рд╣рд░ 3 рдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо 1 рд╕рджрд╕реНрдп рд╣реИ рдФрд░ рдЙрд╕рдиреЗ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрд╛рдпрд╛ рд╣реИ рдЬреЛ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реЛ, рдпрд╛ рдЬреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛред

@Tratcher @ronnyek рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ; рдРрдк рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░реЗ рд╡реЗрдм рдРрдк DLL рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪрд╛рдирдХ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рддрдм рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдРрдк рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛ рдРрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ DLL рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИред

рдореИрдВ рдЕрдм рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ-nableRule: AppOffline , рдХрднреА-рдХрднреА рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдкрд░рд┐рдирд┐рдпреЛрдЬрди "ERROR_FILE_IN_USE" рдХреЛ рд╡рд┐рдлрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдПрдХ рд░рд┐рд▓реАрдЬ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ ms_eploy рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдП рдЧрдП App_Offline.html рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВред рдЕрдЧрд▓рд╛ рд╕рдВрджреЗрд╢ рдЙрдкрд░реЛрдХреНрдд рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрднреА рднреА App_Offline рдлрд╝рд╛рдЗрд▓ рдХреЛ рдиреЛрдЯ рдХрд░реЗрдВ, рдореИрдВ рдлрд┐рд░ рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред

рдЕрдВрддрд┐рдо asp.net рдХреЛрд░ рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд -> aspnetcore.dll 12.1.18263.2

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ ? рдЕрднреА рднреА рдПрдХ рдмрдЧ?

@dhtek рдпрджрд┐ рдЖрдк app_offline.htm рд░рдЦрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд░реНрд╡рд░ рдХреЗ рдкрд╛рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдирд╣реАрдВ рд╣реИред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдареАрдХ рд╣реИ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореИрдВ -e nableRule рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ AppOffline рд╡рд┐рдХрд▓реНрдк рдФрд░ рдкреГрд╖реНрда рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рдВрдХ рд╕реАрдзреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЦреБрдж рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ред

рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЗрдВ Microsoft.NET.Sdk.Web рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдбреЙрдХреНрд╕ рдореЗрдВ рдПрдХ app_offline.htm рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЫреЛрдбрд╝ рд░рд╣реА рд╣реИред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВред рдпрд╣ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдореБрджреНрджрд╛ рдЕрднреА рднреА рдХреЛрд░ рд╡реАрдПрд╕ 2.1 рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдВрддрд┐рдо рд╡реАрдПрд╕ 2017 рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИред рдореИрдВ рдРрдкрдСрдлрд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рднреА рдореБрдЦреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреАрдПрд▓ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рджреМрд░рд╛рди рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдкреВрд░реНрдг рд╡рд┐рд░рд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╡реЗрдм рдХреЛ рд▓рдЧрднрдЧ рдмреЗрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдореЗрдЬрдмрд╛рди рдХреЛ рд▓реЛрдбрдмреЗрд▓рд░ рдХреЗ рдкреАрдЫреЗ рдСрдлрд╝рд▓рд╛рдЗрди рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЬрд▓реНрджреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдФрд░ рдХреБрдЫ рдЕрдзрд┐рдХрд╛рд░ред
рдореИрдВ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред

рдпрд╣ рддреЗрдЬ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреЙрдкреА + рд░реАрд╕рд╛рдпрдХрд▓ рдХреЗ рджреМрд░рд╛рди рдРрдк рдкреВрд▓ рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрдард┐рди рд╕реНрдЯреЙрдк рд╕реЗ тАЛтАЛрдмреЗрд╣рддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдоред

# Setup
Import-Module WebAdministration
# create 2 site root directories
$a = 'C:\inetpub\AspNetCoreSampleA'
$b = 'C:\inetpub\AspNetCoreSampleB'
$siteRoot = 'C:\inetpub\aspnetcoresample'
$siteName = 'AspNetCoreSample'
$poolName = "aspnetcore"
New-Item -Type Directory $a
New-Item -Type Directory $b
# create a symlink to targeting one side
New-Item -Type SymbolicLink -Path $siteRoot -Target $a
# point the site root to the symlink
Set-ItemProperty "IIS:\Sites\$siteName" -name physicalPath -value $siteRoot
# make sure it get's picked up
Restart-WebAppPool -Name $poolName

# this tells you the active side
Get-Item -Path $siteRoot | Select-Object -ExpandProperty target

# Flip the symlink
$current = (Get-Item -Path $siteRoot).Target
$newTarget = if ($current -eq $a) {$b} else {$a}
New-Item -Type SymbolicLink -Path $siteRoot -Target $newTarget -Force
# at this point w3wp.exe still locks the current target folder until it's getting recycled
# Deploy new version to the symlink which is now pointing to the other side which should have no locks
robocopy \\myshare\myapp $siteRoot /mir
# recycle app pool, so it picks up the new files
Restart-WebAppPool -Name $poolName

# bonus point: rollback is easy
$current = (Get-Item -Path $siteRoot).Target
$newTarget = if ($current -eq $a) {$b} else {$a}
New-Item -Type SymbolicLink -Path $siteRoot -Target $newTarget -Force
Restart-WebAppPool -Name $poolName

рдпрд╣рд╛рдБ рд╣реИ рдЬрд┐рд╕реНрдЯ
https://gist.github.com/csharmath/b2af0f50700ce9fbdd8c5c3e582fd41b

Restart-WebAppPool рдореВрд▓ рд░реВрдк рд╕реЗ рд░реАрд╕рд╛рдпрдХрд▓ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдУрд╡рд░рд▓реИрдк рдХрд┐рдП рдЧрдП рд░реАрд╕рд╛рдпрдХрд▓ рд╕рдХреНрд╖рдо (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдирдпрд╛ w3wp.exe рд╕реНрдкреЙрди рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рднреА рдирдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЙрд╕ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд╛ рджреА рдЬрд╛рдПрдЧреА, рдЬрдмрдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреВрд░реЗ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдкреБрд░рд╛рдиреЗ w3wp.exe рджреНрд╡рд╛рд░рд╛ред
рдЗрд╕ рддрд░рд╣ рд╡реЗ рдУрд╡рд░рд▓реИрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдПрдХрд▓ w3wp.exe рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рд▓реЙрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдпрд╣ рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди 100% рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рддрд░рд╣ рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рд╣рдЬ xcopy рдкрд░рд┐рджреГрд╢реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЕрдм рддрдХ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд░рд┐рд▓реАрдЬ рдХреЗ рджреМрд░рд╛рди рдСрдирд▓рд╛рдЗрди рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред

@ рдзрд░реНрдордирд╛рде рдпрд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐

рдЬрд╝рд░реВрд░, рдпрд╣ рдФрд░ рднреА рдмреЗрд╣рддрд░ рд╣реИред рдЖрд╣, рд╣рд░ рдЬрдЧрд╣ рд╣реИ рдХрд┐ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИред
рдЬрдм рддрдХ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рди рдХрд░реЗ рдпрд╛ рдиреНрдпреВрдирддрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдирд╣реАрдВ рд╣реЛ, рддрдм рддрдХ рдмрд╛рдХреА рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрдХреНрд╖реНрдорд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

@ рдзрд░реНрдордирд╛рде рд╕рд╣рдордд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ _years_ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзреВрд░рд╛ рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрдХреВрд▓ рд╣реЛ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рдж рдЪрд▓реЗ рдЬрд╛рдПрдВ рдЬреЛ рдХрд┐рд╕реА рдЪрдорддреНрдХрд╛рд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рдо рдХрд░реЗрдВ ...

рдореИрдВрдиреЗ рдкреЙрд╡рд░ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдиреАрдЪреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ IIS рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреВрд▓ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╢реАрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ... рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореБрдЭреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЗ рдорд┐рд▓реА рд╣реИ рдФрд░ рдпрд╣ рдЖрдкрджрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рд╕рд▓рд╛рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреВрд▓ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдХрд░ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ app_offline.htm рд╣реИ, рдПрдХ рдореИрдВ рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдкрд╛рдпрд╛ https://github.com/IsraelHikingMap/Site/blob/master/Scripts/Deploy .ps1

$pathToApp = 'G:\prod_web_core'
$pathToAppOfflineHtml = 'G:\prod_web_core\app_offline.htm'
# Stop the AppPool 
New-Item -Path $pathToApp -Name app_offline.htm
# Provide script commands here to deploy the app
Copy-Item "G:\prod_web_core_temp\*" -Destination $pathToApp -Recurse -Force
# Restart the AppPool 
Remove-Item -Path $pathToAppOfflineHtml
Get-ChildItem -Path "G:\prod_web_core_temp" -Recurse | Remove-Item -Force

рдореИрдВ рд╕рдлрд▓рддрд╛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AppPool рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реВрдБ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рдЧрддрд┐ ?!

рд╣рдореЗрдВ рдЖрдЬ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирдпрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реЗ рдкрд╣рд░рд╛ рджреЗ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдордЬреЗрджрд╛рд░ рд╣реИ рдХрд┐ рдирдВрдмрд░ 1 рдХрд╛ рдХрд╛рд░рдг рдореИрдВрдиреЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдПрд╕рдкреА рд╕реЗ .рдиреЗрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рдЬрдмрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдмреАрдЯрд╛ рдореЗрдВ рдерд╛ (~ 2001) рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреЛрдИ рдлрд╛рдЗрд▓ рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЧрд░реНрдо рддреИрдирд╛рддреА рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдерд╛! рд▓рдЧрднрдЧ 18 рд╕рд╛рд▓ рдмрд╛рдж рдФрд░ рдЕрдм рдореИрдВ рд╡рд╣реАрдВ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдХреА рдереАред рдУрд╣ рдареАрдХ рд╣реИ, рдЖрдк рдХреБрдЫ рдЬреАрддрддреЗ рд╣реИрдВ рдЖрдк рдХреБрдЫ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рд╣реИ ... рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреНрд▓реЗрдЬрд╝рд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рд╣реИ ...ред
рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╕рдкрдирд╛ рдерд╛ ... рдореИрдВрдиреЗ app_offline.htm рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдРрдк рдкреВрд▓ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ IIS рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ред рдЕрдЧрд▓рд╛ рдХрджрдо рдкреВрд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ 5 рдорд┐рдирдЯ рдХреЗ рдмрд╛рджред Dll рдиреЗ рдЦреБрдж рдХреЛ рдЕрдирд▓реЙрдХ рдХрд┐рдпрд╛ред

2019, рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ ... рдФрд░ рдпрд╣ рдореБрджреНрджрд╛ 2016 рдореЗрдВ рдмрдирд╛ рдерд╛ ... рдЕрднреА рднреА рдХреЛрдИ рд╣рд▓ рдирд╣реАрдВ рд╣реИ?

2020, рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд░рд┐рдЧреНрд░реЗрд╢рдиред .Net 4.6 рдЖрдк рдирдП рд╡рд░реНрдЬрди рдкрд░ dll рдлрд╛рдЗрд▓реНрд╕ рдФрд░ рдРрдк рд░реАрд▓реЛрдбреНрд╕ рдХреЛ рд░рд┐рдкреНрд▓реЗрд╕ рдХрд░рддреЗ рд╣реИрдВред .Net рдХреЛрд░ рд╕рдм рдХреБрдЫ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

@bladefist рдЖрдЬ рдХреЗ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: /

@ рдХрдВрдХрдбрд╝рдЬ рдзрдиреНрдпрд╡рд╛рдж рд▓реЗрдХрд┐рди рдбреЙрдХрд░реНрд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рджрд░реНрдж рдХрд╛ рдПрдХ рдФрд░ рд╕реНрддрд░ рд╣реИред рдореБрдЭреЗ рдЕрдВрддрддрдГ рдПрдХ рдХрд╛рдо рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рдЬрд┐рд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ App_offline.htm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рдПрдХ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдЙрдореНрдореАрдж рдХрд░реЗрдВ рдХрд┐ рдлрд╛рдЗрд▓реЗрдВ рдореБрдлреНрдд рд╣реИрдВред 99% рд╡реЗ рдЬрд┐рд╕ рд╕рдордп рд╣реИрдВ, рдЖрдкрдХреЛ рдмрд╕ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдРрдк рдХреЛ рдкрд╛рд╡рд░ рдбрд╛рдЙрди рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдЪрд▓рд╛ рдЧрдпрд╛ .net 4.6 рдХреЗ рджрд┐рди рд╣реИрдВ рдЬрд╣рд╛рдБ рдЖрдк рдмрд╕ рдЕрдкрдиреЗ dlls рдФрд░ рдЕрдкрдиреЗ app рдСрдЯреЛ рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг рдХреА рдирдХрд▓ рдХреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ред рдХреНрдпрд╛ рджреЛрдЧреБрдирд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЦреИрд░ рд╣рд╛рдБ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрди рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдпрд╣ рддрд░реАрдХрд╛ рдмрд╣реБрдд рд╕реАрдзрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛ рдХреЗ рдмрд┐рдирд╛ рдЖрдкрдХрд╛ рдРрдк рдПрдХ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрдЧрд╛, рдФрд░ рд╣рд╛ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдХреБрдЫ рдмреЗрддрд░рддреАрдм рдЦрд░рд╛рдм рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ рдРрдк рдХреЗ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдиреАрдЪреЗ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ ... рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдореЗрдВ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд╕рд╛рдЗрдХрд┐рд▓ рди рджреЗрдВред рд▓реЗрдХрд┐рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдЕрдзрд┐рдХ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред

@kanadaj рд╣рд╛рдВ, рд╣рдо рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдирд╣реАрдВред

рд╣рдореЗрдВ рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИ

  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ
  • рд╕рд╛рдЗрдЯ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рддреИрдирд╛рдд рдХрд░реЗрдВ
  • рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
  • IIS рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ appcmd рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрдк рдкреВрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

@davidglassborow рдпрд╣ рдПрдХ рд░рдЪрдирд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рд╣реИред рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░рдЪрдирд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдкреБрд░рд╛рдирд╛ рддрдВрддреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рдерд╛ рдЬрдм рд╕рд╛рдЗрдЯ рдкрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рдерд╛, рддреЛ рд╣рдордиреЗ рдЙрдЪреНрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд▓рдЧрд╛рдИред

рд╕рд╣реА, рдЗрди-рдкреНрд▓реЗрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрднреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдпрд╛ рдкрд░рдорд╛рдгреБ рдирд╣реАрдВ рдереЗ, рдЕрдЧрд░ рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдереЗ рдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд╣реАрдВ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдареАрдХ рд╣реЛрдЧрд╛ред рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢рд┐рдХрд╛рдпрддреЗрдВ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реИрдВред рд╣рдо .NET 5.0 рд╕рдордп рд╕реАрдорд╛ рдореЗрдВ рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рдЪреЗрддрд╛рд╡рдиреА:

  • рд╣рдо рд░реВрдкрд░реЗрдЦрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рднрд╛рдЧреНрдп рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВред рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЗрд╢реА рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЙрдХ рдХрд░реЗрдЧрд╛ред рд▓реЙрдХрд┐рдВрдЧ рджреЗрд╢реА dlls рд╕рдорд╕реНрдпрд╛ рд╣рдореЗрд╢рд╛ рдореМрдЬреВрдж рд░рд╣реА рд╣реИ рдФрд░ рд╣рдо рдЬреЛ рднреА рд╢рдорди рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • рд╣рдо рдбрд┐рд╕реНрдХ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реАрд╕рд╛рдпрдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрднреА рднреА рдПрдХ рдРрдкрдСрдлрд╝рд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рдРрдкрдСрдлрд╝рд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛред

@davidfowl рдЖрдк 5.0 рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рд▓рдЧ рд░рд╣рд╛ рд╣реИред рд╣рдо рд░реВрдкрд░реЗрдЦрд╛ рдЖрд╢реНрд░рд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд░рддреЗ рд╣реИрдВред

рдЗрди-рдкреНрд▓реЗрд╕ рддреИрдирд╛рддреА рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдореНрдорд╛рдирдкреВрд░реНрд╡рдХ рдЕрд╕рд╣рдорддред рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓реЛрдб рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХрднреА рднреА рдореБрджреНрджрд╛ рдирд╣реАрдВ рдерд╛, рдПрдХ рдмрд╛рд░ рдирд╣реАрдВред рдкрд╣рд▓реЗ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдРрдк рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд▓реЗрддрд╛ рд╣реИ, рдПрдХ рдмрд╛рд░ рд╕рднреА рдбреАрдПрд▓рдПрд▓ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдПрдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдкреВрд░реА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдСрдирд▓рд╛рдЗрди рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИред рдЕрдм рдЕрдЧрд░ рдХреЛрдИ рднрд╛рд░ рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдерд╛, рддреЛ рдлрд┐рд░, рдпрд╣ рдПрдХ рдЬреБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдЙрдЪреНрдЪ рд▓реЛрдб w / oa рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рддрд╣рдд рдЙрддреНрдкрд╛рджрди рдореЗрдВ DLL рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣рд╛ рд╣реИ? рдирд┐рдпрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВред рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд┐рдирд╛ рдореИрдВ рдЖрдЙрдЯреЗрдЬ рдкреИрджрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдРрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдиреЗ рдЧрд░реНрдо рд░реАрд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдЕрдиреБрд░реЛрдз рд╕рдВрднрд╡рддрдГ рд▓рдЯрдХрд╛рдПрдВрдЧреЗ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрдВрдЧреЗред

рдЗрди-рдкреНрд▓реЗрд╕ рддреИрдирд╛рддреА рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдореНрдорд╛рдирдкреВрд░реНрд╡рдХ рдЕрд╕рд╣рдорддред рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓реЛрдб рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХрднреА рднреА рдореБрджреНрджрд╛ рдирд╣реАрдВ рдерд╛, рдПрдХ рдмрд╛рд░ рдирд╣реАрдВред рдкрд╣рд▓реЗ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдРрдк рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд▓реЗрддрд╛ рд╣реИ, рдПрдХ рдмрд╛рд░ рд╕рднреА рдбреАрдПрд▓рдПрд▓ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдПрдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдкреВрд░реА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдСрдирд▓рд╛рдЗрди рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИред рдЕрдм рдЕрдЧрд░ рдХреЛрдИ рднрд╛рд░ рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдерд╛, рддреЛ рдлрд┐рд░, рдпрд╣ рдПрдХ рдЬреБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдЙрдЪреНрдЪ рд▓реЛрдб w / oa рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рддрд╣рдд рдЙрддреНрдкрд╛рджрди рдореЗрдВ DLL рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣рд╛ рд╣реИ? рдирд┐рдпрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВред рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд┐рдирд╛ рдореИрдВ рдЖрдЙрдЯреЗрдЬ рдкреИрджрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдРрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдиреЗ рдЧрд░реНрдо рд░реАрд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдЕрдиреБрд░реЛрдз рд╕рдВрднрд╡рддрдГ рд▓рдЯрдХрд╛рдПрдВрдЧреЗ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрдВрдЧреЗред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╣реИред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдмрд╕ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрд╛рджреВ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ

@davidfowl рд░рд╛рдЗрдЯ рд▓реЗрдХрд┐рди рд╣рд╛рдИ рдЯреНрд░реИрдлрд┐рдХ + рдиреЛ lb = рд▓рд╛рдкрд░рд╡рд╛рд╣

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, app_offline.htm рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ ci / cd рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдм рд░реБрдХрддреА рд╣реИред рд╣рдореЗрдВ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ DLL рдХреЛ рдзрдХреЗрд▓рдиреЗ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реНрд▓реАрдк рдХрдорд╛рдВрдб рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рд╢рдЯ рдбрд╛рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ 1s рд╕реЗ 1 рдорд┐рдирдЯ рддрдХ рдХрд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЬрдм рдЖрдк рд╕рдВрддреБрд▓рди рдХреЗ рдЯрди рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрди рдиреАрдВрдж рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рддреИрдирд╛рдд рдЪрдХреНрд░ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдореЗрдореЛрд░реА рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рднреА рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

@davidfowl рд░рд╛рдЗрдЯ рд▓реЗрдХрд┐рди рд╣рд╛рдИ рдЯреНрд░реИрдлрд┐рдХ + рдиреЛ lb = рд▓рд╛рдкрд░рд╡рд╛рд╣

ЁЯСН

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, app_offline.htm рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ ci / cd рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдм рд░реБрдХрддреА рд╣реИред рд╣рдореЗрдВ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ DLL рдХреЛ рдзрдХреЗрд▓рдиреЗ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реНрд▓реАрдк рдХрдорд╛рдВрдб рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рд╢рдЯ рдбрд╛рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ 1s рд╕реЗ 1 рдорд┐рдирдЯ рддрдХ рдХрд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЬрдм рдЖрдк рд╕рдВрддреБрд▓рди рдХреЗ рдЯрди рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрди рдиреАрдВрдж рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рддреИрдирд╛рдд рдЪрдХреНрд░ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рддреИрдирд╛рддреА рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдПрдирд╕реАрдПрдо рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдлрд╛рдЗрд▓реЗрдВ рдЕрднреА рднреА рдмрдВрдж рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, app_offline.htm рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ ci / cd рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдм рд░реБрдХрддреА рд╣реИред

рдареАрдХ рд╣реИ, VS рдкреНрд░рдХрд╛рд╢рдХ рдЫреЛрдЯреА рдиреАрдВрдж рдФрд░ рдХрдИ рд░рд┐рдЯреНрд░реАрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реАрд╕рд╛рдпрдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрднреА рднреА рдПрдХ рдРрдкрдСрдлрд╝рд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рдРрдкрдСрдлрд╝рд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛред

рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ "рдПрдкрд░реЗрд╕реНрдЯрд╛рд░реНрдЯ" рдлрд╝рд╛рдЗрд▓ рдХреЛ рдРрдк рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреЛ рдХрд┐ рдРрдкрдСрдлрд╝рд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдП рдмрд┐рдирд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдП?

@ рдЪреЙрдХрд▓реЗрдЯ рдХреНрдпреЛрдВ рд╣реИ?

@ рдЪреЙрдХрд▓реЗрдЯ рдХреНрдпреЛрдВ рд╣реИ?

рдпрджрд┐ рдореИрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ (рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ), рддреЛ рдЖрдк рддрд╛рд▓рд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдРрдк рдХреЛ рд░реАрд╕рд╛рдпрдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ IIS рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдРрдкрдСрдлрд▓рд╛рдЗрди рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛?

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреА рд╣реЛрдЧреА, рдлрд┐рд░ рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдХреНрдпрд╛ рдлрд╛рдЗрд▓ рдмрдирдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдбрд┐рд▓реАрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП IIS рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ "apprestart" рдЬреИрд╕реА рдПрдХ рдлрд╝рд╛рдЗрд▓ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ IIS рд╕реБрди рд▓реЗрдЧрд╛, рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддрди рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рдорди рдореЗрдВ рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓ рд╣реИред рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЖрдИрдбреАрдИ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореИрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реЗрдм рдкрд░рдд рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдФрд░ рддрд░реНрдХ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдЬрдм рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╡реЗрдм рд▓реЗрдпрд░ (ASP.NET Core) рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдмрд┐рд▓реНрдб рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдРрдкрдСрдлрд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рдмрд┐рд▓реНрдб рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд░рд╛рдЗрдбрд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реВрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реАрдПрд╕ рдкрд░ рд╡рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдордПрд╕рдмрд┐рд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ) рдЬрдм рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдордПрд╕рдмрд┐рд▓реНрдЯ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдПрдХ рдмрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, dll рдХреЛ рд╕реАрдзреЗ .Web / рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ редWeb рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдП рдмрд┐рдирд╛ред рдФрд░ рдЪреВрдВрдХрд┐ dll рд▓реЙрдХ рд╣реИ, рдпрд╣ рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ .Web рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╣рд▓ рд╣реИ?
рдЕрдм рддрдХ рдореБрдЭреЗ рдЬреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛ рд╣реИ, рд╡рд╣ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ / .рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ / рдмрд┐рди рдХреЛ рджреЗрдЦреЗрдВред рдЬрдм рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ appoffline рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ IIS рд╕реБрдирддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдлрд┐рд░ Appoffline рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рд╣реИрдХрд░реА рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реВрдВ, рдлрд┐рд░ F5 рджрдмрд╛рдПрдВ рдФрд░ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреА рд╣реЛрдЧреА, рдлрд┐рд░ рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдХреНрдпрд╛ рдлрд╛рдЗрд▓ рдмрдирдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдбрд┐рд▓реАрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП IIS рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ "apprestart" рдЬреИрд╕реА рдПрдХ рдлрд╝рд╛рдЗрд▓ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ IIS рд╕реБрди рд▓реЗрдЧрд╛, рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддрди рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред

рдЬрдм рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ IIS рдХреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛? рдЖрдк рдлрдЯреЗ рд╣реБрдП рд░рд╛рдЬреНрдп рд╕реЗ рдХреИрд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ? рдЖрдкрдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓реЗрди-рджреЗрди рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдВрдд рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╣рд▓ рд╣реИ?
рдЕрдм рддрдХ рдореБрдЭреЗ рдЬреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛ рд╣реИ, рд╡рд╣ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ / .рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ / рдмрд┐рди рдХреЛ рджреЗрдЦреЗрдВред рдЬрдм рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ appoffline рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ IIS рд╕реБрдирддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдлрд┐рд░ Appoffline рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рд╣реИрдХрд░реА рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реВрдВ, рдлрд┐рд░ F5 рджрдмрд╛рдПрдВ рдФрд░ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред

VS рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░рдХрд░ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреА рд╣реЛрдЧреА, рдлрд┐рд░ рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рдХреНрдпрд╛ рдлрд╛рдЗрд▓ рдмрдирдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдбрд┐рд▓реАрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП IIS рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ "apprestart" рдЬреИрд╕реА рдПрдХ рдлрд╝рд╛рдЗрд▓ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ IIS рд╕реБрди рд▓реЗрдЧрд╛, рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддрди рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред

рдЬрдм рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ IIS рдХреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛? рдЖрдк рдлрдЯреЗ рд╣реБрдП рд░рд╛рдЬреНрдп рд╕реЗ рдХреИрд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ? рдЖрдкрдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓реЗрди-рджреЗрди рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдВрдд рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред

рдпрджрд┐ рдХреЛрдИ рддрд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ IIS рдХреЛ рдХреНрдпреЛрдВ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ? рдХреНрдпрд╛ рд╣рдо рддрдм рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рдЬрдм рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдЖрд╡реЗрджрди рдХреЛ рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рд╕рдордЭрд╛ред

рдпрджрд┐ рдХреЛрдИ рддрд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ IIS рдХреЛ рдХреНрдпреЛрдВ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ? рдХреНрдпрд╛ рд╣рдо рддрдм рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рдЬрдм рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдЖрд╡реЗрджрди рдХреЛ рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рдд рд╕рдордЭрд╛ред

рд╣рд╛рдБ, рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЖрдк рдХрд▓рд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдЬ рднреА web.config рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреВрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдЧрд╛ред

рдореБрдЭреЗ рдЗрди-рдкреНрд▓реЗрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди (https://flukefan.github.io/ZipDeploy/) рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИ:

  1. рдЕрд╕реЗрдВрдмрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ (рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдЖрдк рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЖрдк рд╣рдЯрд╛ / рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ);
  2. рдирдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдореЗрдВ рдХреЙрдкреА;
  3. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм-рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЛ рдЯрдЪ рдХрд░реЗрдВ;
  4. рдкреБрд░рд╛рдиреА рдирд╛рдорд╛рдВрдХрд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред

рдХреЛрдИ рд▓реЛрдб-рд╕рдВрддреБрд▓рди рдирд╣реАрдВ; рдПрдХрд▓ IIS рдЙрджрд╛рд╣рд░рдг; рдХреЛрдИ IIS рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВред YMMVред

@FlukeFan рдЖрдк рдлрдЯреЗ рддреИрдирд╛рддреА рд╕реЗ рдХреИрд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ рдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ? рдлрдЯреЗ рджреНрд╡рд╛рд░рд╛, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдВрдбреЛ рд╣реИ рдЬрд╣рд╛рдВ рдкреБрд░рд╛рдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдирдпрд╛ рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред

рдореИрдВ web.config рдХреЛ рддрдм рддрдХ рдирд╣реАрдВ рдЫреВрддрд╛ рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ / рдЕрдкрдбреЗрдЯ рди рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдФрд░ рдЙрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рд░реАрд╕рд╛рдпрдХрд▓-рдкреВрд▓ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЕрдиреНрдп рд╕рднреА рдСрдЯреЛ-рд░реАрд╕рд╛рдпрдХрд▓ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ IIS рдРрдк-рдкреВрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдУрд╡рд░рд▓реИрдк рдХрд┐рдП рдЧрдП рд░реАрд╕рд╛рдпрдХрд▓ рдХреЛ рднреА рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддрд╛ рд╣реВрдВред

@FlukeFan рдПрдХ рд░реАрд╕рд╛рдпрдХрд▓ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА A.dll рдФрд░ B.dll рдереАред рдЬрдм рдЖрдк рд╕реЗрдЯрд┐рдВрдЧ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж B рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк B.dll рдХреЛ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╕реЗрдЯрд┐рдВрдЧ рдкреЗрдЬ рдкрд░ рдЧрдП рдереЗ, рддреЛ рдЖрдк рдПрдХ рдирдП B.Bll рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣реЗ рдкреБрд░рд╛рдиреЗ рдРрдк рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреИрдирд╛рддреА рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдЯрдиреЗрдЯ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрдкрдХрд░рдг рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрди рд╕рднреА рдХрдард┐рди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░?

@FlukeFan рдПрдХ рд░реАрд╕рд╛рдпрдХрд▓ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА A.dll рдФрд░ B.dll рдереАред рдЬрдм рдЖрдк рд╕реЗрдЯрд┐рдВрдЧ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж B рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк B.dll рдХреЛ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╕реЗрдЯрд┐рдВрдЧ рдкреЗрдЬ рдкрд░ рдЧрдП рдереЗ, рддреЛ рдЖрдк рдПрдХ рдирдП B.Bll рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣реЗ рдкреБрд░рд╛рдиреЗ рдРрдк рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓рддрд╛ред https://github.com/FlukeFan/ZipDeploy/blob/master/ZipDeploy/ZipDeploy.cs#L55

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХреНрд░рдо рдореЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдкрд╣рд▓реЗ web.config рдХреЛ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВ, рд╕рднреА 'рдЕрдиреНрдп' рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдлрд┐рд░ рдЕрдВрдд рдореЗрдВ рдЕрдВрддрд┐рдо рдЕрдиреБрд░реЛрдз рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдЬрдмрдХрд┐ IIS рдХрддрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ- рдРрдк-рдкреВрд▓ рдХреЛ рд░реАрд╕рд╛рдпрдХрд▓ рдХрд░реЗрдВ), рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдЕрднреА рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдХрд╛рдо рд╣реИред

рдпрд╣ рд╕рдВрднрд╡рдд: рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдбрд╛рдпрдиреЗрдорд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдлреИрдВрд╕реА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред

рдХреНрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рд░реЛрдб рдореИрдк рдкрд░ рд▓рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ? рдпрджрд┐ рд╡реЗ рд╢реВрдиреНрдп рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ-рд╕реНрд▓реЙрдЯ рд░рдгрдиреАрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ .Net рдХреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдХрд┐рд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ / рдЕрдиреБрдЪрд┐рдд рд╣реИред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╣реЛрдиреЗ рд╕реЗ .рдиреЗрдЯ рдХреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ред рдиреЗрдЯ рдХреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рддреЗрдЬреА рд╕реЗ рдЕрдкрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред

рдореИрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╕реЗ рд╕рд┐рд░ рдкрд░ рдХреАрд▓ рдареЛрдХреА рд╣реЛрдЧреАред рдпрд╣ рдПрдХ рдирд╛рдкрд╛рдХ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рдирд┐рд░реНрдгрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдЬрд╝реНрдпреЛрд░ рд╕реНрд▓реЙрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЕрддреАрдд рдореЗрдВ рд╕рдВрднрд╡ рдерд╛ рддреЛ рдЕрдм "рдареАрдХ рдХрд░рдиреЗ" рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рдХреНрдпреЛрдВ рд▓рдЧрд╛ рд╣реИ? рдпрд╣ рдПрдХ рд╡реНрдпрд╡рд╕рд╛рдпрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдирд╣реАрдВ рдЯреВрдЯрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдорди рдореЗрдВ рд╣реИред рд╢рд╛рдпрдж рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рдирдХреА рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ azure рдлреАрдЪрд░реНрд╕ рджреЗрдЦреЗ рд╣реИрдВ, рдЬреЛ рдореБрдлреНрдд рдореЗрдВ рдлреБрд╕рдлреБрд╕рд╛рддреЗ рдереЗ рдФрд░ рдЕрдзрд┐рдХ рдорд╣рдВрдЧреЗ рдЯрд┐рдпрд░ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рддреЗ рдереЗред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреИрдирд╛рддреА рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдЯрдиреЗрдЯ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрдкрдХрд░рдг рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрди рд╕рднреА рдХрдард┐рди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░?

рдпрд╣ CI рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рдирд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ? рдпрд╣ рдЧрдВрддрд╡реНрдп рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ / рдкреИрдХреЗрдЬ рдХреЛ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдЧрд╛?

рдореИрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╕реЗ рд╕рд┐рд░ рдкрд░ рдХреАрд▓ рдареЛрдХреА рд╣реЛрдЧреАред рдпрд╣ рдПрдХ рдирд╛рдкрд╛рдХ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рдирд┐рд░реНрдгрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдЬрд╝реНрдпреЛрд░ рд╕реНрд▓реЙрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЕрддреАрдд рдореЗрдВ рд╕рдВрднрд╡ рдерд╛ рддреЛ рдЕрдм "рдареАрдХ рдХрд░рдиреЗ" рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рдХреНрдпреЛрдВ рд▓рдЧрд╛ рд╣реИ? рдпрд╣ рдПрдХ рд╡реНрдпрд╡рд╕рд╛рдпрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдирд╣реАрдВ рдЯреВрдЯрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдорди рдореЗрдВ рд╣реИред рд╢рд╛рдпрдж рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рдирдХреА рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ azure рдлреАрдЪрд░реНрд╕ рджреЗрдЦреЗ рд╣реИрдВ, рдЬреЛ рдореБрдлреНрдд рдореЗрдВ рдлреБрд╕рдлреБрд╕рд╛рддреЗ рдереЗ рдФрд░ рдЕрдзрд┐рдХ рдорд╣рдВрдЧреЗ рдЯрд┐рдпрд░ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рддреЗ рдереЗред

рд╕рдордиреНрд╡рдп рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рди рдкрд░ рддреИрдирд╛рддреА рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИрдВред рд╣рдо рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ ASP.NET рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореБрджреНрджреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдлреНрд░реЗрдорд╡рд░реНрдХ рдирд┐рд░реНрднрд░ рдЬреЛ рд╕рднреА .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдорд░реНрдерд┐рдд рд╣реИред .NET рдХреЛрд░ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдФрд░ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реБрдЭрд╛рд╡ рднреА рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рдЕрднреА рднреА рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рддреИрдирд╛рддреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рдорд╛рдгреБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдмрдЧреНрд╕ рдФрд░ рдРрдк_рдСрдлрд▓рд╛рдЗрди рдбрд┐рдЯреЗрдХреНрд╢рди рдХреА рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реЗ рдЖрддреА рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рддреЗ рд╣реИрдВ (рдФрд░ рдкреАрдбреАрдмреА рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде)ред

рд╡реЗрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЖрдЬ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЙрд╕ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЖрдХрд╛рд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕ рддрдХрдиреАрдХ рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реИ рддреЛ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рддреИрдирд╛рдд рд╣реИрдВ рдпрд╛ рдлрд╛рдЗрд▓ рд╢реЗрдпрд░ рдкрд░ рдХреЙрдкреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдХрддрд╛ рд╣реИ)ред

рдПрдХ рдбреЙрдЯрдиреЗрдЯ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдпрд╣рд╛рдВ рдПрдХ рдЙрддреНрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ CI рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рдирд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ? рдпрд╣ рдЧрдВрддрд╡реНрдп рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ / рдкреИрдХреЗрдЬ рдХреЛ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдЧрд╛?

рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдпрд╣ рд╢рд╛рдпрдж рдПрдлрд╝рдЯреАрдкреА рдФрд░ рдПрдХ рд╕реАрдзреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдлрд╝рдЯреАрдкреА рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк ssh рдкрд░ ftp рднреА рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдЙрдкрдХрд░рдг рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдлрд╝рдЯреАрдкреА рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк ssh рдкрд░ ftp рднреА рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдЙрдкрдХрд░рдг рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

рдирд╣реАрдВ, рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ ftpред рд▓реЗрдХрд┐рди рдЬреЛ рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рд╣рдо рдХрд░реЗрдВрдЧреЗред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХреЙрдкреА рдЯреВрд▓ рд╣реЛ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд▓рдХреНрд╖реНрдп рдорд╢реАрди рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдпрд╣ рд╣рдореЗрдВ рдХрд╣реАрдВ рднреА рдмрд┐рдЯреНрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд╡реНрдпрд╡рд╕рд╛рдп рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдорд╢реАрдиреЛрдВ рдореЗрдВ SSH рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IIS рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рд╣реИрдВ?

@davidfowl рддреИрдирд╛рддреА рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ (рдСрдкреНрдЯ-рдЗрди) рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВред
https://github.com/dotnet/aspnetcore/issues/3719#issuecomment -473183712
https://github.com/dotnet/aspnetcore/issues/3793#issuecomment -335666414

рд╣рдо рдбрд┐рд╕реНрдХ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╣рдореЗрдВ рд╢реВрдиреНрдп рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред

рдРрд╕рд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдПрдлрд╝рдЯреАрдкреА рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк ssh рдкрд░ ftp рднреА рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдЙрдкрдХрд░рдг рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

рдирд╣реАрдВ, рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ ftpред рд▓реЗрдХрд┐рди рдЬреЛ рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рд╣рдо рдХрд░реЗрдВрдЧреЗред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХреЙрдкреА рдЯреВрд▓ рд╣реЛ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд▓рдХреНрд╖реНрдп рдорд╢реАрди рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдпрд╣ рд╣рдореЗрдВ рдХрд╣реАрдВ рднреА рдмрд┐рдЯреНрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд╡реНрдпрд╡рд╕рд╛рдп рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдорд╢реАрдиреЛрдВ рдореЗрдВ SSH рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IIS рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рд╣реИрдВ?

рд╣рд╛рдБред рд╣рдо CI / CD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛ рд╕рд┐рд╕реНрдЯрдо рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ рдмреЙрдХреНрд╕ рдкрд░ рдУрдкрдирд╢ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ред

$ appPool = 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ'
рд╕реНрдЯреЙрдк-рд╡реЗрдмрдПрдкрдкреВрд▓ -рдирд╛рдо $ appPool -рдкрд╢реНрдЪреНрд░реБ
... рддреИрдирд╛рдд рдХрд░реЗрдВ ...

рдкреНрд░рд╛рд░рдВрдн-WebAppPool -Name $ appPool -Passthru
... рддреИрдирд╛рддреА .....

рдпрд╛

$ appPool = 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ'
рд╕реНрдЯреЙрдк- WebAppPool -Name $ appPool
рдЬрдмрдХрд┐ (Get-WebAppPoolState -Name $ appPool) .Value -ne 'Stop') {
рдиреАрдВрдж 1 # рд╕реЗрдХрдВрдб
}
... рддреИрдирд╛рдд рдХрд░реЗрдВ ...

рдкреНрд░рд╛рд░рдВрдн-WebAppPool -Name $ appPool
рдЬрдмрдХрд┐ (Get-WebAppPoolState -Name $ appPool) .Value -ne 'Start') {
рдиреАрдВрдж 1 # рд╕реЗрдХрдВрдб
}

... рддреИрдирд╛рддреА .....

рдЧрд░реАрдмреЛрдВ рдХреА рддреИрдирд╛рддреА рдХреЗ рд╕реНрд▓реЙрдЯ рд╣реИрдВ
рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ 2 рд╕рд╛рдЗрдЯ рд░реВрдЯ рдлреЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЖрдИрдЖрдИрдПрд╕ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рдкреЙрдЗрдВрдЯ рд╣реИред
рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдЕрдиреНрдп рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╣реИред
рдпрджрд┐ рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рд░реАрд╕рд╛рдпрдХрд▓ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдирд╣реАрдВ, рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡рд╛рд░реНрдордЕрдк рдкреЗрдирд▓реНрдЯреА рдЬреЛ рдХрд┐ рд╡реИрд╕реЗ рднреА рд╣реИред

рдпрджрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди / рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдореЗрдВ N рд╕реЗрдХрдВрдб рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ N рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдРрдк рдкреВрд▓ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕рдВрджрд┐рдЧреНрдз рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдирд╣реАрдВред
рдмрд╕ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдЬрдм рдлрд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рддреЛ рдРрдк рдкреВрд▓ рдХреЛ рд░реАрд╕рд╛рдпрдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдкреНрд▓рд┐рди рдХреЛ рд╕реНрд╡реИрдк рдХрд░реЗрдВред
рдкрд░рдорд╛рдгреБ рдХреА рддреИрдирд╛рддреА, рдХреЛрдИ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдзреАрдорд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

https://github.com/dotnet/aspnetcore/issues/3793#issuecomment -459870870

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА?
рдЕрдЧрд░ рдРрд╕рд╛ рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

  • рдЧреНрд░рд╛рд╣рдХ -> рд╕рд░реНрд╡рд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдлрд╝реЛрд▓реНрдбрд░ / рд╢реЗрдпрд░ рдХреНрдпрд╛ рд╣реИ?
  • S: рдпрд╣рд╛рдБ
  • C: рдареАрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд / рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛
  • S: рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╕реНрд╡реИрдк рдФрд░ рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг
  • C: thx, http get / healthcheck (рд╡реИрдХрд▓реНрдкрд┐рдХ)
  • рд╕реА: рдЙрд╣ рдореИрдВ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛, рд░реЛрд▓рдмреИрдХ pls
  • S: рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╕реНрд╡реИрдк, рд░реАрд╕рд╛рдпрдХрд▓ (рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рд╡рд╛рдкрд╕)
  • рд╕реА: рдХреБрд▓реНрд▓рд╛ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рддреЛ рдореИрдВ рднреА рддреИрдирд╛рддреА рдмрдВрдж рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдРрдк рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рдореИрдВрдиреЗ рдРрдк рдкреВрд▓ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╛рдЗрд▓реЗрдВ рд▓реЙрдХ рд░рд╣рддреА рд╣реИрдВред рдореИрдВрдиреЗ app_offline.htm рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рднреА рдХреЛрдИ рдХрд┐рд╕реНрдордд рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк app_offline.htm рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдпрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдСрдирд▓рд╛рдЗрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ dll рдХреА рддреНрд░рд┐рд╢рдВрдХреБ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ, рдкреБрд░рд╛рдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рднреА рдирд╛рдорд╛рдВрдХрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЪрд▓ рд░рд╣реА рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рдлрд┐рд░ рд╕реЗ рддреИрдирд╛рддреА рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рддрд╛рд░реАрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо IIS рд╕рд░реНрд╡рд░ рд╡рд┐рдВрдбреЛрдЬрд╝ 2012 R2 рдкрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ 3.1.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

@foxjazz рдРрдк рдкреВрд▓ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдЕрднреА рднреА рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рдмрдВрдж рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@foxjazz рдРрдк рдкреВрд▓ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдЕрднреА рднреА рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рдмрдВрдж рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

image

image

рдЬрдм рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ dll рдХреА рддрд╕реНрд╡реАрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рддрд╕реНрд╡реАрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред
рдРрдк рдкреВрд▓ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рднреА рдЪрд▓ рд░рд╣реА рд╣реИред рд╕реНрдЯреЙрдк рдмрдЯрди рд╣рд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПред

рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рднреА рдЪрд▓ рд░рд╣реА рд╣реИред рд╕реНрдЯреЙрдк рдмрдЯрди рд╣рд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПред

рдЙрдкрд░реЛрдХреНрдд рдЪрд┐рддреНрд░ рдЯрд╛рд╕реНрдХ рдореИрдиреЗрдЬрд░ рдХрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреМрди рд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЗрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░ рджреЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЗрди рд▓рдВрдмрд╛рдИ рдореЗрдВ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╣реИрдВрдбрд▓ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ w3wp.exe 2 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдмрдВрдж рд╣реИред рднрд▓реЗ рд╣реА рдЗрд╕рдХреЗ рд▓рд┐рдП рдРрдк рдкреВрд▓ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реЛред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдЧ рд╣реЛрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдПрдкреАрдЖрдИ \ KillDeathKill
{
Program.KillProcess ()
}

рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ w3wp рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдпрд╛ рддреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА рдирд╣реАрдВ рдорд╛рд░рд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдХреЗ рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдкреАрдЖрдИрдбреА тАЛтАЛрдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕реНрдкреВрди рдЕрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реАрд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдРрдк рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореМрдЬреВрджрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░реЗрдВ, рдирдП рдмрд┐рдЯреНрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ, рдРрдк рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдирд┐рдХрд╛рд▓реЗрдВ

рдЗрд╕рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ w3wp рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдпрд╛ рддреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА рдирд╣реАрдВ рдорд╛рд░рд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдХреЗ рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдкреАрдЖрдИрдбреА тАЛтАЛрдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕реНрдкреВрди рдЕрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реАрд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдРрдк рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореМрдЬреВрджрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░реЗрдВ, рдирдП рдмрд┐рдЯреНрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ, рдРрдк рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдирд┐рдХрд╛рд▓реЗрдВ

рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ app_offline.htm рдкрд╣рд▓реЗ рдиреАрдЪреЗ рд╣реИред рд╣рд╛рдБ рдпрд╣ рдорд╛рдорд▓рд╛ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рддрд┐ рдкрде рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реИред рд╕рд╛рде рд╣реА рдРрдк рдкреВрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ w3wp рдЕрднреА рднреА рдлрд╝рд╛рдЗрд▓ рд▓рдЯрдХрд╛ рд░рд╣рд╛ рдерд╛ред

рдлрд┐рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд░реЛрдХреА рдЧрдИ

рдлрд┐рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд░реЛрдХреА рдЧрдИ

рддреЛ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ рдХрд┐ рдРрдк рдкреВрд▓ рдХреЛ рд░реЛрдХрдирд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХрдирд╛ рдирд╣реАрдВ рд╣реИ?

рдРрдк рдкреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдРрдк рдкреВрд▓ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдиреАрдЪреЗ рдЧрд┐рд░рд╛ рджреЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрди рдЕрдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдРрдк рдкреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдРрдк рдкреВрд▓ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдиреАрдЪреЗ рдЧрд┐рд░рд╛ рджреЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрди рдЕрдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд╣рд╣ рддреБрдордиреЗ рдХрд╣рд╛ рдмрдХрд╡рд╛рд╕ рдореБрдЭреЗ рдРрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рджрдВрдбрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдРрдк рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХреЛ рд░реЛрдХрдирд╛ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдореА рдирд╣реАрдВ рд╣реИ, 90 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рднреА рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рддрдм рднреА рд▓реЙрдХ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрдк рдкреВрд▓ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдХред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд▓реЙрдХ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧреАред рдореИрдВ рддрдм рдмрд┐рдирд╛ рдХрд┐рд╕реА рдбрд░ рдХреЗ рддреИрдирд╛рдд рд░рд╣ рд╕рдХрддрд╛ рдерд╛ред рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рднреА рдХрд╛рдо рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ 3.1.4) рд╕реНрд╡рд╛рдж

рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ 2 рд╕рд╛рдЗрдЯ рд░реВрдЯ рдлреЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЖрдИрдЖрдИрдПрд╕ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рдкреЙрдЗрдВрдЯ рд╣реИред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА?
рдЕрдЧрд░ рдРрд╕рд╛ рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

@CJHarmath - рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдХреЛрд╢рд┐рд╢ рджреА, рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХреЛрдб рдореЗрд░реЗ рдиреАрдЪреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж!

рдпрджрд┐ рдореИрдВрдиреЗ рдЕрдкрдбреЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рддреЛ рдореИрдВ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреВрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВ рдХреЗрд╡рд▓ IIS рд╕рд░реНрд╡рд░ рдореЗрдВ рджреВрд░рд╕реНрде рд╢реЗрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдлреНрд▓рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрд╡рд░рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
psexec.exe \\IIS_SERVER cmd /c "powershell -noninteractive -file C:\FlipSymLink.ps1"

# FlipSymLink.ps1

Import-Module WebAdministration # run as admin
# create 2 site root directories
$a = 'C:\Websites\MySiteA'
$b = 'C:\Websites\MySiteB'
$appRoot  = 'C:\Websites\MySite'
$appName  = 'MyAppName'
$siteName = 'MySiteName'
$poolName = "MyPoolName"
New-Item -Type Directory $a -ErrorAction SilentlyContinue
New-Item -Type Directory $b -ErrorAction SilentlyContinue

# create a symlink to targeting one side
New-Item -Type SymbolicLink -Path $appRoot -Target $a -Name A -ErrorAction SilentlyContinue
New-Item -Type SymbolicLink -Path $appRoot -Target $b -Name B -ErrorAction SilentlyContinue

# point the site root to the symlink
$currentPath = (Get-ItemProperty "IIS:\Sites\$siteName\$appName" -name physicalPath)
if ($currentPath -eq "$appRoot\A") {
    Write-Host "Switched to B"
    New-Item $b\active.txt
    Remove-Item $a\active.txt
    Set-ItemProperty "IIS:\Sites\$siteName\$appName" -name physicalPath -value $appRoot\B
} else {
    Write-Host "Switched to A"
    New-Item $a\active.txt
    Remove-Item $b\active.txt
    Set-ItemProperty "IIS:\Sites\$siteName\$appName" -name physicalPath -value $appRoot\A
}
Restart-WebAppPool -Name $poolName

psexec.exe \\IIS_SERVER cmd /c "powershell -noninteractive -file C:\FlipSymLink.ps1"

рдпрд╣ рдПрдХ JEA рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдореЗрдВ рднреА рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк flip рдХреЛ рдПрдХ рдЧреИрд░-рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ CI / CD рд╕рд░реНрд╡рд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдЪрд░рдг рд╕реЗ)
Invoke-Command -ComputerName IIS_SERVER -ConfigurationName IIS-Flip -ScriptBlock { Switch-SymlinkTarget -SiteName MySite}
рдкреНрд░рдпреБрдХреНрдд Switch рдХреЗ рдмрдЬрд╛рдп Flip рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдХрд┐рд╕реА рд╕реНрд╡реАрдХреГрдд рдХреНрд░рд┐рдпрд╛ рд╣реИред

рдкреНрд░рдпреБрдХреНрдд Switch рдмрдЬрд╛рдп Flip рд░реВрдк рдореЗрдВ рдпрд╣ рдПрдХ рдЕрдиреБрдореЛрджрд┐рдд рдХреНрд░рд┐рдпрд╛ рд╣реИред

Swap рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ?

4 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди?
рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдирдИ dll рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд░рд╕реНрде рдбреЗрд╕реНрдХрдЯреЙрдк рдирд╣реАрдВ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ред

рдЬрдм рдореИрдВ рдЙрддреНрдкрд╛рджрди IIS рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓ рдкрд░ FTP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП .NET рдХреЛрд░ рдбреАрдПрд▓рдПрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд▓реЙрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓реЙрдХ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП IIS (рдЖрд░рдбреАрдкреА рдЦреЛрд▓рдиреЗ) рдореЗрдВ рдЖрд╡реЗрджрди рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВред
рдЖрд╡реЗрджрди рдкрд░ рд░реЛрдХ рдХреЗ рдмрд┐рдирд╛ рддреИрдирд╛рддреА рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрд╛рдп? рдзрдиреНрдпрд╡рд╛рдж

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдореЗрдЬрдмрд╛рди рдХреЛ рд▓реЛрдбрдмреЗрд▓рд░ рдХреЗ рдкреАрдЫреЗ рдСрдлрд╝рд▓рд╛рдЗрди рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЬрд▓реНрджреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдФрд░ рдХреБрдЫ рдЕрдзрд┐рдХрд╛рд░ред
рдореИрдВ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред

рдпрд╣ рддреЗрдЬ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреЙрдкреА + рд░реАрд╕рд╛рдпрдХрд▓ рдХреЗ рджреМрд░рд╛рди рдРрдк рдкреВрд▓ рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдХрдард┐рди рд╕реНрдЯреЙрдк рд╕реЗ тАЛтАЛрдмреЗрд╣рддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдоред

# Setup
Import-Module WebAdministration
# create 2 site root directories
$a = 'C:\inetpub\AspNetCoreSampleA'
$b = 'C:\inetpub\AspNetCoreSampleB'
$siteRoot = 'C:\inetpub\aspnetcoresample'
$siteName = 'AspNetCoreSample'
$poolName = "aspnetcore"
New-Item -Type Directory $a
New-Item -Type Directory $b
# create a symlink to targeting one side
New-Item -Type SymbolicLink -Path $siteRoot -Target $a
# point the site root to the symlink
Set-ItemProperty "IIS:\Sites\$siteName" -name physicalPath -value $siteRoot
# make sure it get's picked up
Restart-WebAppPool -Name $poolName

# this tells you the active side
Get-Item -Path $siteRoot | Select-Object -ExpandProperty target

# Flip the symlink
$current = (Get-Item -Path $siteRoot).Target
$newTarget = if ($current -eq $a) {$b} else {$a}
New-Item -Type SymbolicLink -Path $siteRoot -Target $newTarget -Force
# at this point w3wp.exe still locks the current target folder until it's getting recycled
# Deploy new version to the symlink which is now pointing to the other side which should have no locks
robocopy \\myshare\myapp $siteRoot /mir
# recycle app pool, so it picks up the new files
Restart-WebAppPool -Name $poolName

# bonus point: rollback is easy
$current = (Get-Item -Path $siteRoot).Target
$newTarget = if ($current -eq $a) {$b} else {$a}
New-Item -Type SymbolicLink -Path $siteRoot -Target $newTarget -Force
Restart-WebAppPool -Name $poolName

рдпрд╣рд╛рдБ рд╣реИ рдЬрд┐рд╕реНрдЯ
https://gist.github.com/csharmath/b2af0f50700ce9fbdd8c5c3e582fd41b

рдпрд╣рд╛рдБ рдХреБрдЫ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрд╛рдо рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ ASP.NET рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреЗрдЯ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рдХрд╛рдо рд╣реЛрдЧрд╛ред рдкрд╣рд▓рд╛ рд░рди рд╕рд╛рдЗрдЯ рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд░реЛрдХ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдореЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПред

param(
    [Parameter(Mandatory = $true)]
    [string] $iisRootPath,
    [Parameter(Mandatory = $true)]
    [string] $siteName,
    [Parameter(Mandatory = $true)]
    [string] $artifactPath,
    [Parameter(Mandatory = $false)]
    [string] $siteFolderName,
    [Parameter(Mandatory = $false)]
    [string] $appPoolName
)
Import-Module WebAdministration

#populate optional parameters
if (!($PSBoundParameters.ContainsKey('siteFolderName'))) { $siteFolderName = $siteName }
if (!($PSBoundParameters.ContainsKey('appPoolName'))) { $appPoolName = $siteName }

#set A, B and C paths
$a = "$iisRootPath\$siteFolderName" + 'A'
$b = "$iisRootPath\$siteFolderName" + 'B'
$c = "$iisRootPath\$siteFolderName"

#existence test
$cName = Get-Item -Path $c -ErrorAction SilentlyContinue | Select-Object -ExpandProperty name -ErrorAction SilentlyContinue
$bName = Get-Item -Path $b -ErrorAction SilentlyContinue | Select-Object -ExpandProperty name -ErrorAction SilentlyContinue

#get the shudown timeout for the app pool
$shutdownTimeout = Get-WebConfigurationProperty -Filter 'system.web/httpRuntime' -PSPath "IIS:\Sites\$siteName" -Name shutdownTimeout | Select-Object -ExpandProperty Value

#create symlink, if symlink source is an existing directory, rename existing 
if($cName -eq $null) 
{
    Write-Output "Creating SymbolicLink $c -> $a" 
    New-Item -Type SymbolicLink -Path $c -Target $a
} 
else
{
    #directories don't have a target property
    $cTarget = Get-Item -Path $c | Select-Object -ExpandProperty target -ErrorAction SilentlyContinue

    #this is a directory, rename and create symlink
    if($cTarget -eq $null)
    {
        #restart AppPool first so no locked files
        #Write-Output "Restarting AppPool $appPoolName" 
        #Restart-WebAppPool -Name $appPoolName

        #stop AppPool first so no locked files
        Write-Output "Stopping AppPool $appPoolName" 
        Stop-WebAppPool -Name $appPoolName

        #sleep for shutdownTimeout
        Write-Output "Sleeping for $shutdownTimeout" 
        Start-Sleep -Seconds (([System.TimeSpan]::Parse("$shutdownTimeout").TotalSeconds) * 1.1)

        try {
             #if the rename fails, there are files in use. stop the script
            $newName = $siteFolderName + 'A'
            Write-Output "Renaming $c to $newName" 
            Rename-Item -Path $c -NewName $newName -ErrorAction Stop
        }
        catch {
            Write-Error -Message "Failed to rename $c to $newName due to files in use."

            #start AppPool 
            Write-Output "Starting AppPool $appPoolName due to failed folder rename. Consider trying again durring a time with reduced traffic." 
            Start-WebAppPool -Name $appPoolName

        }

        #create symlink
        Write-Output "Creating SymbolicLink $c -> $a" 
        New-Item -Type SymbolicLink -Path $c -Target $a

        #start AppPool 
        Write-Output "Starting AppPool $appPoolName" 
        Start-WebAppPool -Name $appPoolName

        #copy a to b to pick up directory permissions
        if($bName -eq $null) 
        {
            Write-Output "Copying Directory $a to $b"  
            robocopy $a $b /e /sec /sl
        }
    }
}

#existence test
$aName = Get-Item -Path $a -ErrorAction SilentlyContinue | Select-Object -ExpandProperty name -ErrorAction SilentlyContinue
$bName = Get-Item -Path $b -ErrorAction SilentlyContinue | Select-Object -ExpandProperty name -ErrorAction SilentlyContinue

#create if needed
if($aName -eq $null) 
{
    Write-Output "Creating Directory $a"  
    New-Item -Type Directory $a 
}
if($bName -eq $null) 
{
    Write-Output "Creating Directory $b"  
    New-Item -Type Directory $b 
}

#make sure site pointing to symlink
Write-Output "Pointing Website $siteName to Path $c" 
Set-ItemProperty "IIS:\Sites\$siteName" -name physicalPath -value $c

#restart so we know it's loading from symlink
Write-Output "Restarting AppPool $appPoolName" 
Restart-WebAppPool -Name $appPoolName

#sleep for shutdownTimeout 
Write-Output "Sleeping for $shutdownTimeout" 
Start-Sleep -Seconds ([System.TimeSpan]::Parse("$shutdownTimeout").TotalSeconds)

#get current symlink target and set new target
Get-Item -Path $c | Select-Object -ExpandProperty target
$current = (Get-Item -Path $c).Target
$newTarget = if ($current -eq $a) {$b} else {$a}

$fileOrDirectoryName = Get-Item $artifactPath | Select-Object -ExpandProperty name

#test for .zip
if(($fileOrDirectoryName).ToLower().EndsWith(".zip") -eq $true)
{
    #copy to temp location
    $guid = [System.Guid]::NewGuid()
    $tempPath = "$iisRootPath\temp-$guid"
    $tempDest = "$iisRootPath\temp-dest-$guid"

    Write-Output "Creating temp directory $tempPath" 
    New-Item -Type Directory $tempPath

    $artifactDirectory = [System.IO.Path]::GetDirectoryName($artifactPath)
    $artifactFile = [System.IO.Path]::GetFileName($artifactPath);

    #TODO: first robocopy arg needs to be a directory, not a file
    Write-Output "Copying archive from $artifactPath to $tempPath" 
    robocopy $artifactDirectory $tempPath $artifactFile

    #extract to temp destination (seems a failed extract can leave empty folders)
    Write-Output "Extracting archive to $tempDest" 
    Expand-Archive -Path "$tempPath\$fileOrDirectoryName" -DestinationPath $tempDest -Force

    #copy from temp destination to destination
    Write-Output "Copying files from $tempDest to $newTarget" 
    robocopy $tempDest $newTarget /e

    #delete temp directory
    Write-Output "Removing temp directory $tempPath" 
    Remove-Item -Path $tempPath -Recurse -Force

    #delete temp directory
    Write-Output "Removing temp directory $tempDest" 
    Remove-Item -Path $tempDest -Recurse -Force
}
else 
{
    #copy new files
    Write-Output "Copying files from $artifactPath to $newTarget" 
    robocopy $artifactPath $newTarget /e
}

#swap symlink
Write-Output "Pointing SymbolicLink $c -> $newTarget" 
New-Item -Type SymbolicLink -Path $c -Target $newTarget -Force

#restart so it loads from newly swapped symlink
Write-Output "Restarting AppPool $appPoolName" 
Restart-WebAppPool -Name $appPoolName

@LucidObscurity рд╡рд╣ рдХреНрдпрд╛ рд╣реИ? рдПрдХ cmd рдХреЛрдб? рдореБрдЭреЗ рд╡рд╣ рдХреЛрдб рдХрд╣рд╛рдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИ?
рдзрдиреНрдпрд╡рд╛рдж

рд░рд┐рдЯреНрд░реАрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ (рдкреИрд░рд╛рдореАрдЯрд░: -retryAttempts:X ) рдпрд╛ рд░рд┐рдЯреНрд░реА рдЯрд╛рдЗрдо рдЕрдВрддрд░рд╛рд▓ (рдкреИрд░рд╛рдореАрдЯрд░: -retryInterval:XXXX ) msdeploy рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рди рд╣реЛред рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @davidfowl рд╕рд╣реА рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рднреА рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╣реИ рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЙрдХ рдХрд░рддреА рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ IIS рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк app_offline.htm рдХреЛ рдбреНрд░реЙрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 90 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ (AppPool рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯрд┐рдВрдЧ), рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЖрдк рдЗрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рджреЗрдЦреЗрдВрдЧреЗред
рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдкрд░, рдореИрдВ рдЙрд╕ рд╕рдордп рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╢рдЯрдбрд╛рдЙрди рдЯрд╛рдЗрдо рд▓рд┐рдорд┐рдЯ (рд╕реЗрдХрдВрдб) рдХреЛ 5 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ app_offline.htm рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдЯрд╛ рджреЗрдВред рдпрд╣ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рдореИрдВ app_offline.htm рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ, рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рд┐рдВрдХ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ app_offline .htm рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реВрдВред Msdeploy рдХреЗ рд╕рд╛рде, рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдлрд╛рдЗрд▓реЗрдВ рд▓реЙрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ 90 рд╕реЗрдХрдВрдб рд╕реЗ рдкрд╣рд▓реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рддреИрдирд╛рддреА рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдпрд╣ рджреВрд╕рд░реЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдЬрдм рдпрд╣ рдирдИ рд░рд┐рд▓реАрдЬ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ?

рд╣рдореЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди / рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП Next sprint planning рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдкрд░ рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдЕрдиреБрд░реЛрдз рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВрдЧреЗ рдЬрдм рд╣рдо рдЕрдЧрд▓реЗ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдЧреЗ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдпрд╣рд╛рдВ рд╣рдорд╛рд░реА рдЯреНрд░рд╛рдЗрдПрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдЗрд╕ рд╣рдлреНрддреЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛ред .NET 4.5.2 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ .NET 5.0 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рдЗрд╕рд╕реЗ рдЙрдмрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ Windows рд╕реЗрд╡рд╛ рдмрдирд╛рдИ рдЬреЛ IIS рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИред рдЙрд╕ рд╕реЗрд╡рд╛ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рд▓ HTTP рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдХрд╕реНрдЯрдо рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд╡реЗрдмрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдЧреНрд░реЗрдб рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдкреЛрд╕реНрдЯ-рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдк-рдкреВрд▓ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬ рдХрд╛ рдмреИрдХрдЕрдк рдмрдирд╛рддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдЕрдкрдЧреНрд░реЗрдбреЗрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдРрдк-рдкреВрд▓ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдВрдбреЛрдЬ рдлреЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛, рдЬреЛ рдЕрдкрдЧреНрд░реЗрдб рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдкреЛ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрд░реНрдпреБрдХреНрдд рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд┐рд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rynowak picture rynowak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guardrex picture guardrex  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

snebjorn picture snebjorn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ipinak picture ipinak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

UweKeim picture UweKeim  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ