我正在尝试做什么:
我想将文件启动到基于.NET的网站。每当dll改变时,Windows都会回收Web应用程序。当我在应用程序上的rsync文件可以循环多次,因为延迟而不是首选的单个时间。这会使网站停止使用更长的时间。
我是如何解决的:
我试图通过使用--delay-updates来解决这个问题,它应该在更改它们之前暂存临时文件中的所有文件更改。这看起来正是我想要的,但是,给出--delay-updates参数看起来并不像宣传的那样。输出中没有可辨别的差异(使用-vv),结束行为相同(应用程序循环多次而不是一次)。
出于稳定性原因,我不想在所有生产机器上运行Cygwin,否则我可以rsync到本地暂存目录,然后执行本地rsync,这将足够快到“原子”。 / p>
我正在使用rsync 3.0.9运行Cygwin 1.7.17。
我遇到了atomic-rsync(http://www.opensource.apple.com/source/rsync/rsync-40/rsync/support/atomic-rsync),它通过rsyncing到登台目录,重命名现有目录,然后重命名登台目录来实现这一点。遗憾的是,这在Windows设置中不起作用,因为您无法重命名文件夹中包含正在运行的dll文件(权限被拒绝)。
您可以使用正在运行的二进制文件删除文件夹,但这会导致每次都回收应用程序,而不是仅在更新dll时更糟糕。
有谁知道如何
感谢您的帮助。
答案 0 :(得分:2)
这很古老,但我最终发现--delay-updates 实际上是按预期工作的。由于其他因素,该应用程序似乎只是多次回收。