已部署的二进制文件在SDL Tridion 2011 SP1发布期间被锁定

已部署的二进制文件在SDL Tridion 2011 SP1发布期间被锁定,tridion,tridion-2011,Tridion,Tridion 2011,我有以下情况: 我发布了一个包含多个二进制文件的页面,这些二进制文件随后由HTTP接收器接收,并使用进程内部署器进行部署,所有这些都托管在IIS中,作为本地服务用户运行的专用应用程序池中 页面存储在代理数据库中,二进制文件使用类似于“D:\binaries\Preview”的路径发布到本地文件系统 预览文件夹作为只读共享在类似\machinename\PreviewBinaries的位置共享给域用户,以便可以使用web应用程序显示二进制文件 十有八九,一切正常,但偶尔发布失败,这似乎是因为二进制

我有以下情况:

我发布了一个包含多个二进制文件的页面,这些二进制文件随后由HTTP接收器接收,并使用进程内部署器进行部署,所有这些都托管在IIS中,作为本地服务用户运行的专用应用程序池中

页面存储在代理数据库中,二进制文件使用类似于“D:\binaries\Preview”的路径发布到本地文件系统

预览文件夹作为只读共享在类似\machinename\PreviewBinaries的位置共享给域用户,以便可以使用web应用程序显示二进制文件

十有八九,一切正常,但偶尔发布失败,这似乎是因为二进制文件被另一个进程锁定而无法覆盖。我曾使用ProcessMon和其他工具尝试并确定可能锁定这些文件的原因(但没有用)。有时我可以手动删除图像,然后再次发布作品。如果我在服务器上重新启动IIS,我总是可以删除文件并发布

有人对锁定这些图像的过程有什么建议吗?以前有人见过这个问题吗?我是否会将任何问题发布到共享?或者SiteEdit 2009可能会锁定这些文件,因为它似乎只发生在我们的预览服务器上,而live(无SiteEdit)看起来很好


提前感谢

如果您使用的是Windows 2008,您可以尝试从磁盘中删除该文件。然后它会告诉您是哪个进程锁定了文件。但考虑到重新启动IIS会解锁文件,似乎很可能是IIS锁定了文件


我不认为SiteEdit 2009会导致这些文件被锁定。鉴于您可以将预览服务器放在另一个框中,SiteEdit只能通过HTTP与该服务器对话。它从不直接访问预览服务器上的文件,甚至不通过CD API。就像访问者一样,只是对web服务器的常规请求。

我知道您使用了Process Monitor,但您是否尝试过Sysinternals Process Explorer?“Find->Find Handle或Dll”对于这类事情非常有用。或者,如果您喜欢命令行工具,Sysinternals还可以生成handle.exe,它可以为您转储所有内容。

是否有正在运行的防病毒或索引服务。这些锁往往在您不希望的时候使用非常短暂的锁。特别是在防病毒方面,这通常就如同一个进程放弃其锁一样,并且就在您的另一个进程尝试获取锁之前。如果这是一个问题,那么设置一些排除目录应该会有所帮助。

再次强调,这不是一个直接的答案,但我还是想与大家分享:


我见过类似的情况,我将页面发布到代理数据库,将二进制文件发布到文件系统。当我将应用程序池的标识更改为网络服务时,这个问题消失了,我没有进一步研究它。

好的,似乎有问题的代码出现在我们正在使用的表示框架中。用于将二进制文件异步传输到客户端的框架。这似乎会导致一个错误(即使是在只读共享上)

我们已经删除了这行代码,并以另一种方式将应用程序修改为服务器二进制文件(我们现在重写了路径,以便IIS可以直接传输文件)。这似乎解决了问题,并提高了站点性能


感谢您的建议,它帮助我排除了所有没有导致问题的因素,因此我能够找到根本原因。

没有-没有使用反病毒软件是的,也使用了Process Explorer-仍然没有luckThanks Frank,我将排除SiteEdit的想法。Chris,您是否查看了IIS工作进程(从IIS管理控制台)排队并偶然检查这些被应用程序池锁定,因此您可以完全排除IIS。您是否签出了部署程序包?也许同一个图像在那里多次出现(有些奇怪)。部署时,所有映像都会同时写入。此外,您是否为图像创建自定义名称?不同的图像可能有相似的名称?还有任何特定的页面/组件发生了这种情况?是的,谢谢亨德里克-这是我最后检查的内容之一,但没有重复的二进制文件