Я использую webfarm Framework 2.0 на ферме IIS 7.5 Windows 2008 RC2 с двумя узлами.Несколько раз в день ферма внезапно выходит из строя.Есть два основных типа сбоев.Один из-за блокировки файла thumbs.db, другой из-за того, что applicationHost.config недействителен.В обоих случаях в ферму не вносятся изменения.Он просто просыпается на своем регулярном интервале, чтобы проверить наличие различий, и внезапно дает сбой.В первом случае, часто ремонт решит проблему.Во втором случае мне часто приходится вносить произвольные изменения в файл applicationhost.config на втором узле, что вызывает повторную синхронизацию.
Вот два сообщения об ошибках:
1) Failed to run operation 'ProvisionApplications'. Failed to run method 'Microsoft.Web.Farm.SyncApplicationsRemoteMethod' on server 'LiveWeb3Vm'. Exception in response stream. The ApplicationHost.config file is invalid. Cannot proceed with synchronization. Exception in response stream. The ApplicationHost.config file is invalid. Cannot proceed with synchronization. Microsoft.Web.Farm.WebFarmException: Failed to run method 'Microsoft.Web.Farm.SyncApplicationsRemoteMethod' on server 'LiveWeb3Vm'. Exception in response stream. The ApplicationHost.config file is invalid. Cannot proceed with synchronization. ---> Microsoft.Web.Farm.WebFarmException: Exception in response stream ---> Microsoft.Web.Deployment.DeploymentException: The ApplicationHost.config file is invalid. Cannot proceed with synchronization.
at Microsoft.Web.Deployment.AppHostConfigProvider.Add(DeploymentObject source, Boolean whatIf)
at Microsoft.Web.Deployment.DeploymentObject.Add(DeploymentObject source, DeploymentSyncContext syncContext)
at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAdd(DeploymentObject destObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable)
at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
at Microsoft.Web.Farm.SyncApplicationsRemoteMethod.RunRemote(ServerRemoteMethodContext methodContext, Object[] parameters)
at Microsoft.Web.Farm.WebFarmAgentService.HandleRunMethod(HttpListenerContext context)
--- End of inner exception stack trace ---
at Microsoft.Web.Farm.RunRemoteAsyncResult.ResponseCompleteCallback(IAsyncResult result)
--- End of inner exception stack trace ---
at Microsoft.Web.Farm.ProvisionApplicationsOperationProvider.RunOperationAsyncResult.EndProvision()
at Microsoft.Web.Farm.ProvisionApplicationsOperationProvider.EndRunOperation(IAsyncResult result)
at Microsoft.Web.Farm.RunOperationContext.FinalOperationCompleteCallback(IAsyncResult result)
2) Server marked 'Unhealthy' due to failure to run operation 'ProvisionApplications' Microsoft.Web.Farm.WebFarmException: Failed to run method 'Microsoft.Web.Farm.SyncApplicationsRemoteMethod' on server 'LiveWeb3Vm'. Exception in response stream. The ApplicationHost.config file is invalid. Cannot proceed with synchronization. ---> Microsoft.Web.Farm.WebFarmException: Exception in response stream ---> Microsoft.Web.Deployment.DeploymentException: The ApplicationHost.config file is invalid. Cannot proceed with synchronization.
at Microsoft.Web.Deployment.AppHostConfigProvider.Add(DeploymentObject source, Boolean whatIf)
at Microsoft.Web.Deployment.DeploymentObject.Add(DeploymentObject source, DeploymentSyncContext syncContext)
at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAdd(DeploymentObject destObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable)
at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
at Microsoft.Web.Farm.SyncApplicationsRemoteMethod.RunRemote(ServerRemoteMethodContext methodContext, Object[] parameters)
at Microsoft.Web.Farm.WebFarmAgentService.HandleRunMethod(HttpListenerContext context)
--- End of inner exception stack trace ---
at Microsoft.Web.Farm.RunRemoteAsyncResult.ResponseCompleteCallback(IAsyncResult result)
--- End of inner exception stack trace ---
at Microsoft.Web.Farm.ProvisionApplicationsOperationProvider.RunOperationAsyncResult.EndProvision()
at Microsoft.Web.Farm.ProvisionApplicationsOperationProvider.EndRunOperation(IAsyncResult result)
at Microsoft.Web.Farm.RunOperationContext.FinalOperationCompleteCallback(IAsyncResult result)
Я наткнулся на несколько сообщений, в которых предлагается обходной путь - отключить синхронизацию и создать ручной рабочий процесс, который выполняет синхронизацию и игнорирует определенные ошибки.Но я надеюсь, что есть лучшее объяснение.В случае ошибки thumbs.db мне интересно, поможет ли отключение кэширования миниатюр?