我有一个Web应用程序,我正在发布到Azure网站。有时会发布没有问题。但是,通常情况下,它会在特定的二进制文件(业务逻辑dll之一)上失败,表明该文件正在使用中。 快速google之后;看来这意味着该文件正在服务器端使用。这很奇怪,因为当时没有针对此Web应用程序发出请求。
我是否需要设置一些配置选项以强制卸载dll?我以前发布过Azure网站,从未见过这个。
答案 0 :(得分:1)
您应该首先了解一下IIS和Web Deploy。
看看this SO Question它基本上描述了你遇到的问题。一般来说,使用组件有点奇怪。不知道确切的原因,但它在你的装配中存在,更重要的是如何使用它。
作为建议 - 在部署(停止和启动)之前回收站点。或者在网站停止时尝试部署(我怀疑是可能的)。
答案 1 :(得分:1)
我们曾经有过类似的情况。它使用以下步骤解决。
从门户网站停止网站
使用FileZilla等客户端将FTP导入网站。你可以获得FTP网址和通过查找publishMethod =" FTP"来自发布配置文件的凭据部分。
导航到site / wwwroot文件夹
删除锁定的文件
启动网站
立即从门户网站的部署标签重新部署网站。
答案 2 :(得分:0)
唯一对我有用的解决方案:删除网站,然后重新部署(使用相同名称)。 FTP信誉继续发挥作用。
我试过没有工作的其他事情:
答案 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)
您可以执行多种解决方案
从Azure中删除现有文件。
更改天蓝色的配置设置
MSDEPLOY_RENAME_LOCKED_FILES = 1
如果您不想删除文件,则可以停止该服务,例如(Webjobs)。
WEBJOBS_STOPPED = 1