1

我正在使用 Appveyor 的 Webdeploy 将 ASP.NET Core RC2 应用程序部署到 Azure 应用程序服务实例。

msdeploy.exe -source:IisApp='%s\.deploy' -dest:IisApp='%s',ComputerName='https://%s.scm.azurewebsites.net/msdeploy.axd',UserName='$%s',Password='%s',IncludeAcls='False',AuthType='Basic' -verb:sync -enableLink:contentLibExtension  -retryAttempts:2"

这在 RC1 上运行良好,但现在我收到错误消息:

错误代码:ERROR_FILE_IN_USE 更多信息:Web Deploy 无法修改目标上的文件“MyTeam.exe”,因为它已被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下次尝试发布时为 .Net 应用程序使用 AppOffline 规则处理程序。

正如我从错误消息中了解到的,这可以通过添加来解决

<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>

在 webdeploy 的 .pubxml 文件中,但由于我没有 .pubxml 文件,所以我想知道;

有没有办法使用 msdeploy.exe 命令指定 EnableMSDeployAppOffline?

或者从我的部署环境(AppVeyor)关闭和重新启动应用服务的任何其他优雅方式?

4

2 回答 2

2

是的,您可以将以下标志添加到您的 msdeploy 调用中:

 -enableRule:AppOffline

http://www.iis.net/learn/publish/deploying-application-packages/taking-an-application-offline-before-publishing

于 2016-05-22T11:41:12.187 回答
1

注意 aspnetcore.dll 7.1.1970.0 中可能存在的已知错误

https://github.com/aspnet/Home/issues/694 https://github.com/aspnet/AspNetCoreModule/issues/50

检查你的 aspnetcore.dll 版本(Kudu/ProcessExplorer/you app process/Properties/Modules/aspnetcore.dll)

实际上 7.1.1971.0 版本已修复,AppOffline 再次运行良好。

于 2017-02-01T08:53:12.660 回答