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

时间:2014-01-12 18:46:38

标签: web-applications azure publish azure-web-sites

我有一个Web应用程序,我正在发布到Azure网站。有时会发布没有问题。但是,通常情况下,它会在特定的二进制文件(业务逻辑dll之一)上失败,表明该文件正在使用中。 快速google之后;看来这意味着该文件正在服务器端使用。这很奇怪,因为当时没有针对此Web应用程序发出请求。

我是否需要设置一些配置选项以强制卸载dll?我以前发布过Azure网站,从未见过这个。

6 个答案:

答案 0 :(得分:1)

您应该首先了解一下IIS和Web Deploy。

看看this SO Question它基本上描述了你遇到的问题。一般来说,使用组件有点奇怪。不知道确切的原因,但它在你的装配中存在,更重要的是如何使用它。

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

答案 1 :(得分:1)

我们曾经有过类似的情况。它使用以下步骤解决。

  • 从门户网站停止网站

  • 使用FileZilla等客户端将FTP导入网站。你可以获得FTP网址和通过查找publishMethod =" FTP"来自发布配置文件的凭据部分。

  • 导航到site / wwwroot文件夹

  • 删除锁定的文件

  • 启动网站

  • 立即从门户网站的部署标签重新部署网站。

答案 2 :(得分:0)

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

我试过没有工作的其他事情:

  • 停止网站并尝试删除(或重命名)锁定的程序集 通过FTP或Kudu命令行。获得访问被拒绝错误杀死w3wp 通过Kudu。大会保持锁定。将DLL重命名为其他文件 并重新部署。不知何故应用程序不会开始说它不可能 访问锁定的文件,即使没有其他程序集 应该不再引用它了。

答案 3 :(得分:0)

查看How to take web app offline while publishing以获取可能的解决方案。基本上包括

<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
pubxml文件中的

应该可以缓解这个问题。但请注意,这可能无法在所有情况下正常运行,尤其是对于this thread on GitHub所证明的ASP.NET Core。

答案 4 :(得分:0)

显然,在发布时上传到服务器的App_Offline.htm文件实际上应该命名为app_offline.htm(即小写)。系统不以不区分大小写的方式识别文件是一个错误(在this GitHub issue中的某个时刻被识别)。

因此,如果向<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>文件中添加.pubxml不起作用,也无法重新启动Azure网络应用,请尝试将App_Offline.htm重命名为app_offline.htm并再次发布。它应该工作。

PS:这个bug应该在2017年1月下旬在.NET Core中修复(参见链接的问题),但我无法弄清楚问题是Azure中的.NET版本还是别的({{3} }没有帮助我)。如果你正在读这篇文章,我还没想出来,我每次都在重命名文件。 :p如果您知道必须采取哪些措施来解决这个问题,请发表评论!

答案 5 :(得分:0)

您可以执行多种解决方案

  1. 从Azure中删除现有文件。

  2. 更改天蓝色的配置设置

    MSDEPLOY_RENAME_LOCKED_FILES = 1

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

    WEBJOBS_STOPPED = 1