【问题标题】:TeamCity MSDeploy .NET App with Hangfire fails带有 Hangfire 的 TeamCity MSDeploy .NET 应用程序失败
【发布时间】:2015-11-12 10:36:52
【问题描述】:

我正在尝试使用 Hangfire。这是我的问题,当我尝试发布到 azure 时发布失败,因为 DLL 正在被另一个进程使用。

VSMSDeploy] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4276, 5):错误 ERROR_FILE_IN_USE:Web 部署任务失败。 (Web Deploy 无法修改目标上的文件“Takenet.WebApi.dll”,因为它被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下次发布尝试时为 .Net 应用程序使用 AppOffline 规则处理程序。 了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE。)

我使用了 AppOffline 规则,它在我的 webapp 的根目录中添加了 App_Offline.htm。一旦文件在那里,IIS 将删除我的应用程序的工作进程并卸载任何正在使用的文件,但发布仍然失败,看起来发布速度比关闭速度快 =/

谁能帮忙?

【问题讨论】:

    标签: asp.net azure iis teamcity hangfire


    【解决方案1】:

    首先我在 PublishProfile 中添加了 AppOffline 规则,但看起来只有在使用 Visual Studio 部署时才使用此规则 =/ 所以我必须将此规则应用于团队城市。

    在命令行/构建服务器上设置这些属性

    当您调用 msbuild.exe 时,您可以像传递任何其他 MSBuild 属性一样传入此属性。使用以下语法,

    /p:EnableMSDeployAppOffline=true /p:MSDeployUseChecksum=true

    【讨论】:

    • 能分享一下TeamCity配置的设置吗?最好有您触发的 msbuild 目标的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多