Web applications Azure网站发布文件在使用中失败

Web applications Azure网站发布文件在使用中失败,web-applications,azure,publish,azure-web-app-service,Web Applications,Azure,Publish,Azure Web App Service,我有一个发布到Azure网站的web应用程序。有时它会毫无问题地发布。但是,在声明文件正在使用的特定二进制文件(业务逻辑DLL之一)上,它通常会失败。 在谷歌快速搜索之后;这似乎意味着该文件正在服务器端使用。这很奇怪,因为当时肯定没有针对该web应用程序的请求 是否需要设置一些配置选项来强制卸载DLL?我以前发布过Azure网站,但从未见过这种情况。您应该先了解一下IIS和Web部署 看一看,它基本上描述了你的问题。总的来说,使用这个程序集有点奇怪。我不知道这样做的确切原因,但它位于您的程序集中

我有一个发布到Azure网站的web应用程序。有时它会毫无问题地发布。但是,在声明文件正在使用的特定二进制文件(业务逻辑DLL之一)上,它通常会失败。 在谷歌快速搜索之后;这似乎意味着该文件正在服务器端使用。这很奇怪,因为当时肯定没有针对该web应用程序的请求


是否需要设置一些配置选项来强制卸载DLL?我以前发布过Azure网站,但从未见过这种情况。

您应该先了解一下IIS和Web部署

看一看,它基本上描述了你的问题。总的来说,使用这个程序集有点奇怪。我不知道这样做的确切原因,但它位于您的程序集中的某个地方,更重要的是,它是如何被使用的


建议在部署之前回收站点(停止和启动)。或者在站点停止时尝试部署(我怀疑这是可能的)。

我们曾经遇到过类似的情况。通过以下步骤解决了此问题

  • 从门户停止站点

  • 使用客户端(例如)将FTP发送到站点。通过查找publishMethod=“FTP”部分,可以从发布配置文件中获取FTP url和凭据

  • 导航到站点/wwwroot文件夹

  • 删除锁定的文件

  • 启动网站

  • 立即从门户中的“部署”选项卡重新部署站点


    • 唯一对我有效的解决方案:删除站点,然后重新部署(使用相同的名称)。FTP信条继续发挥作用

      其他我尝试过但不起作用的东西:

      • 停止网站并尝试删除(或重命名)锁定的程序集 通过FTP或Kudu命令行。获取访问被拒绝错误Kill w3wp 途经库杜。大会仍然锁定。将DLL重命名为其他文件 并重新部署。不知何故,应用程序不会启动说它不能 即使没有其他程序集,也可以访问锁定的文件 不应该再引用它
      查看可能的解决方案。基本上包括

      <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
      
      true
      

      在您的pubxml文件中,应该可以缓解这个问题。但是请注意,这可能无法在所有情况下正常工作,特别是对于ASP.NET核心,这可以从以下内容得到证明。

      显然,在发布过程中上载到服务器的
      App_Offline.htm
      文件实际上应命名为
      App_Offline.htm
      (即小写)。系统没有以不区分大小写的方式识别文件是一个bug(在中的某个点识别)

      因此,如果将
      True
      添加到您的
      .pubxml
      文件不起作用,也无法重新启动Azure web应用程序,请尝试在服务器上将
      app_Offline.htm
      重命名为
      app_Offline.htm
      (可能还会再次发布)。它应该会起作用


      PS:这个bug应该在2017年1月在.NET Core中修复(请参阅链接问题),但我无法确定问题是Azure中的.NET版本还是上传PC中的,或者其他什么(对我没有帮助)。与此同时,这个问题似乎确实已经解决了,因为它再也没有发生在我们身上。

      有多种类型的解决方案可供选择

    • 从azure中删除现有文件

    • 更改azure配置设置

      MSDEPLOY\u RENAME\u LOCKED\u FILES=1

    • 如果您不想删除该文件,则可以停止该服务,例如(Webjobs)

      WEBJOBS\u STOPPED=1


    • 您还可以使用部署槽来解决此问题。使用生产设置创建一个新的部署槽,并部署到一个新实例,然后交换。现在是2020年6月26日,我在通过FTP发布.NET Core 2 Razor Pages应用程序时仍然存在此问题。我必须进去重命名6个不同的文件。