代码之家  ›  专栏  ›  技术社区  ›  Dan Friedman

在Azure应用程序服务任务v3中使用Web Deploy时,获取使用中的错误文件

  •  1
  • Dan Friedman  · 技术社区  · 6 年前

    类似的问题曾被问过很多次,但大多数答案都是老生常谈的,可能只是部分适用。此问题特定于使用“Azure应用程序服务部署”任务(版本3)通过Azure DevOps/Azure管道使用Web Deploy.*.

    < Buff行情>

    未能将Web包部署到应用程序服务。

    选择“重命名锁定的文件”选项后,再次尝试部署应用程序服务。

    错误代码:错误文件使用中

    详细信息:Web Deploy无法修改目标上的文件“vbccompiler.exe”,因为它被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下次发布时对.NET应用程序使用appoffline规则处理程序。 尝试。了解更多: http://go.microsoft.com/fwlink/?linkid=221672 error_file_in_use

    < /块引用>

    这里有两个建议:

    1. 选择“重命名锁定的文件”选项
    2. 重新启动应用程序
    3. 使用AppOffline规则

    此外, The documentation for the task repeases recommendions 1 and 3 together.

    < Buff行情>

    为了避免部署失败,并在使用中出现错误代码“文件”错误,如果.NET应用程序在Windows上以Web应用程序为目标,请确保启用“重命名锁定的文件”和“使应用程序脱机”。对于零停机部署,请使用插槽交换。

    < /块引用>

    然而,这些建议已经到位。

    只剩下建议2:重新启动服务。出于许多原因,我宁愿不必回到这一点上。

    为什么1和3不足以成功完成部署?

    未能将Web包部署到应用程序服务。

    选择“重命名锁定的文件”选项后,再次尝试部署应用程序服务。

    错误代码:错误文件使用中

    详细信息:Web Deploy无法修改目标上的文件“vbccompiler.exe”,因为它被外部进程锁定。为了使发布操作成功,您可能需要重新启动应用程序以释放锁定,或者在下次发布时对.NET应用程序使用appoffline规则处理程序。 尝试。了解更多: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE .

    这里有两个建议:

    1. 选择“重命名锁定的文件”选项
    2. 重新启动应用程序
    3. 使用AppOffline规则

    此外, the documentation 对于该任务,共同重申建议1和3。

    为了避免部署失败,并在使用中出现错误代码“文件”错误,如果.NET应用程序在Windows上以Web应用程序为目标,请确保启用“重命名锁定的文件”和“使应用程序脱机”。对于零停机部署,请使用插槽交换。

    然而,这些建议已经到位。 Deployment settings

    只剩下建议2:重新启动服务。因为很多原因,我宁愿不回到这个问题上来。

    为什么1和3不足以成功完成部署?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Dan Friedman    6 年前

    我与一位微软技术支持代表交谈过,他们告诉我“重命名锁定的文件”只适用于DLL。

    但我确实找到了一个对我有用的解决方案。在“附加参数”中,我添加了“-usechecksum”。所以“部署Azure应用程序服务”任务现在看起来像这样

    从那以后我就再也没有遇到过任何问题。

    . 在“附加参数”中,我添加了“-usechecksum”。所以“部署Azure应用程序服务”任务现在看起来像这样

    enter image description here

    从那以后我就没什么问题了。

        2
  •  0
  •   Andy Li-MSFT    6 年前

    这里跟踪到一个问题: azure app service deploy fails for.NET core 2.0 with error_file_in_use and based on vincentdass's. comment” pr 8457 用于根据Web Deploy团队建议使用新版本的msdeploy “在未来版本中将升级msdeploy。

    但是,您可以使用Web Deploy检查 publish,然后创建一个 new deployment。重新部署将不起作用,因为它不会接受您对发布定义所做的更改。

    参考下面的线程,您可以检查有关此问题的讨论并相应地进行故障排除。

    并基于 文森达斯 评论 公共关系 #8457 用于根据Web Deploy团队建议使用新版本的msdeploy “在未来版本中将升级msdeploy。

    但是你可以检查一下 Publish Using Web Deploy Rename Locked Files ,然后创建 新的 部署。重新部署将不起作用,因为它不会收集您对发布定义所做的更改。

    参考下面的线程,您可以检查关于这个问题的讨论并相应地进行故障排除。