我们安装了 WFF 2.5,并使用它在我们的测试环境中成功配置了服务器场并配置了辅助服务器。
我们的环境(控制器、主服务器、辅助服务器)是 Windows 2008 Server Web Edition R2,运行 IIS 7.5,安装了 WFF 2.5。
我们一直遇到应用程序池相关目录中的 .tmp 文件被锁定的问题。进程监视器表明是工作进程 (w3wp.exe) 锁定了该文件。
确切的错误消息是无法运行操作“ProvisionApplications”。无法在服务器“abc”上运行方法“Microsoft.Web.Farm.SyncApplicationsRemoteMethod”。响应流中出现异常。在“ABC85DA.tmp”上处理操作“删除文件”时遇到错误。错误代码为 0x80070020。该进程无法访问“C:\inetpub\temp\appPools\ABC85DA.tmp”,因为它正在被另一个进程使用
如果我关闭据我所知承载工作进程的 Windows 进程激活服务,错误就会解决。
然而,显然,为了使服务器上线,我们需要启动服务,一旦我们这样做,自动配置步骤就会失败,WFF 会将服务器标记为不健康,并将其从服务器场中移除。
我尝试通过取消选中应用程序配置模块下的“启用应用程序配置”来关闭应用程序配置,但该操作似乎仍然每 30 秒触发一次。
所以 - 实际上有两个问题:
如何解决应用程序池临时文件上的文件锁定问题。
如何关闭辅助服务器上的自动应用程序配置操作?(如果问题 1 没有解决方案,这实际上是一种二等奖解决方法)
短暂性脑缺血发作
答案1
我设法通过更新 Web 场控制器上的 c:\windows\system32\inetsrv\conf\applicationHost.config 中的忽略列表来解决这个问题。我更新了 Web 场部分以跳过提供 appPool 和 logFiles 文件夹,这似乎已经为我解决了这个问题。
<webFarm>
<applicationProvision offlineWhileSync="true" syncWebServerFromPrimary="true" periodicSync="00:00:30">
<clear />
<skipDirectives>
<skip name="appPools" skipDirective="objectName=dirPath,absolutePath=.*appPools.*" />
<skip name="logFiles" skipDirective="objectName=dirPath,absolutePath=.*LogFiles.*" />
</skipDirectives>
</applicationProvision>
</webFarm>
答案2
重新启动 ARR 服务器导致服务器停止尝试重复配置辅助服务器(换句话说,应用了我已关闭的“启用应用程序配置”选项)
否则,我认为锁定问题仍然会发生。这可能不是问题,因为您可以在最初配置服务时以及在旨在同步服务器的任何后续应用程序配置期间关闭 Windows 进程激活服务。
我怀疑按计划进行自动配置仍然是一个问题。
答案3
我可以通过关闭应用程序配置来成功配置辅助服务器,但在我的场景中,我需要复制内容,因此它实际上不是一个解决方案,只是服务哪一部分出现故障的标志。平台配置似乎没问题。
我在 Amazon EC2 上的干净实例上运行时遇到了与锁定的 tmp 文件相同的错误。
您仍遇到文件锁定问题吗?您是否设法解决了自动配置问题?