我使用BitBucket中的Git Deploy将Orchard CMS网站部署到Windows Azure。
只是我的最新更改在尝试部署时遇到错误:
该进程无法访问该文件 'C:\ DWASFiles \站点[MyWebsite] \ VirtualDirectory0 \站点\ wwwroot的\程序App_Data \依赖性\ Joel.Net.Akismet.dll' 因为它正被另一个进程使用。
鉴于其Azure网站,我不能“停止AppPool”或类似的东西。我已经尝试停止该网站,但后来我无法进行部署停止该网站。我对如何进一步排除故障没有想法。
尝试通过ftp进行更新
没有“重启”选项,但我可以停止并启动该站点,这不起作用(502 Web服务器错误)。
通过ftp删除文件\ App_Data \ Dependencies文件夹不起作用,并得到同样的错误。
停止网站,然后通过ftp上传文件确实有效。但是尝试通过Git重新部署,我得到了类似的错误:
命令:deploy.cmd处理基本网站部署。 KuduSync.NET 从: 'C:\ DWASFiles \ Sites [MyWebsite] \ VirtualDirectory0 \ site \ repository': 'C:\ DWASFiles \ Sites [MyWebsite] \ VirtualDirectory0 \ site \ wwwroot'错误: 该进程无法访问该文件 'C:\ DWASFiles \站点[MyWebsite] \ VirtualDirectory0 \站点\ wwwroot的\程序App_Data \依赖性\ Markdown.dll' 因为它正被另一个进程使用。复制文件: 'App_Data \ Dependencies \ dependencies.compiled.xml'复制文件: 'App_Data \ Dependencies \ dependencies.xml'复制文件: 'App_Data \ Dependencies \ Ionic.Zip.dll'复制文件: 'App_Data \ Dependencies \ Joel.Net.Akismet.dll'复制文件: 'App_Data \ Dependencies \ Markdown.dll'网络期间发生错误 站点部署。处理基本网站部署。
我确定它不仅仅是一个dll,而是在\ App_Data \ Dependencies文件夹中的所有dll在Git部署期间都不会“停止”。
尝试在Azure网站上设置另一个网站以执行Git部署
我已经为Git设置了另一个Azure站点,以便将相同的代码分支部署到,这样可以正常工作。
但是当我将域名切换到新的Azure网站时,我的新网站不再有效,但我的旧网站可以接受git deploy。
因此,我的域名所针对的网站必须得到活动,导致更新停止工作。有没有办法阻止网站 和 进行Git部署?
所以根据@ David的评论从我的repo中删除Dependencies文件夹后,我收到一个新错误:
命令:deploy.cmd处理基本网站部署。 KuduSync.NET 从: 'C:\ DWASFiles \站点[MyWebsite] \ VirtualDirectory0 \站点\存储库' to:'C:\ DWASFiles \ Sites [MyWebsite] \ VirtualDirectory0 \ site \ wwwroot' 错误:拒绝访问路径“Joel.Net.Akismet.dll”。仿形 file:'。gitignore'正在删除文件: 'App_Data \ Dependencies \ Joel.Net.Akismet.dll'发生错误 在网站部署期间。处理基本网站部署。
似乎Kudu同步看到Dependencies文件夹中没有文件,并试图删除它们!当我根本没有Dependencies文件夹时会发生同样的情况 - 它会尝试删除Dependencies文件夹。
@David有一个kudu忽略文件吗?
解决!
好的,我坚持下去,我终于解决了。
希望我的下一次检查仍然有效(手指交叉)
答案 0 :(得分:1)
我猜测问题的根源在于您将App_Data\Dependencies
文件夹提交到您的仓库中。这个文件夹是Orchard动态创建的,不应该在你的仓库中。
我怀疑如果你不这样做(通过使用.gitignore),一切都会正常工作,你不会得到这个错误。
答案 1 :(得分:0)
您可以在部署之前重新启动网站,这类似于回收应用程序池。只需点击仪表板上页脚的重启按钮即可。