0
Fixed

Service does not start due to existing files when installing to the same directory as v3.0.7

Matthew Clark 12 years ago updated by anonymous 8 years ago 4

When attempting to install v4.0 to the same directory as v3.0.7, all the new extensibility files are added to the directory, and all the old ones are kept. When attempting to start the service, the following error appears:

Error - The following occurred in module: General server error: Cannot create a file when that file already exists.

The following general server error occured:
System.IO.IOException: Cannot create a file when that file already exists.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.__Error.WinIOError()
at System.IO.FileInfo.MoveTo(String destFileName)
at Unify.Framework.Configuration.AssemblyDirectoryConfigurationEngine.<>c_DisplayClassc.<ClearConfigurations>b_a(FileInfo config)
at Unify.Framework.Visitor.<>c_DisplayClass1`1.<Visit>b_0(T item, Int32 index)
at Unify.Framework.Visitor.VisitT(IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Framework.Visitor.VisitT(IEnumerable`1 visitCollection, Action`1 visitor)
at Unify.Framework.Configuration.AssemblyDirectoryConfigurationEngine.ClearConfigurations(IUnifyEnginePlugInKey engine, IEnumerable`1 additionalProbeNames)
at Unify.Framework.Configuration.ConfigurationEngineBase.RetrieveConfiguration(IUnifyEnginePlugInKey engine, IEnumerable`1 additionalProbeNames)
at Unify.Framework.Configuration.ConfigurationEngineNotifierDecorator.RetrieveConfiguration(IUnifyEnginePlugInKey engine, IEnumerable`1 additionalProbeNames)
at Unify.Framework.Configuration.ConfigurationEngineAccessor.RetrieveConfiguration(IUnifyEnginePlugInKey engine, IEnumerable`1 additionalProbeNames)
at Unify.Framework.Logging.LoggingEngine`1.LoadConfiguration()
at Unify.Framework.Logging.LoggingEngine`1..ctor(INotificationMessageService messageService, FileSystemInfo executingDirectory, IConfigurationEngine configurationEngine, TBranding branding)
at Unify.Framework.Logging.LoggingEnginePlugInFactory`1.CreateComponent(IUnifyEnginePlugInFactoryInformation`1 factoryInformation)
at Unify.Framework.DependencyPlugInGenerator`4..ctor(ICollection`1 plugInGenerator, IPlugInFactory`2 factoryInformationFactory)
at Unify.Framework.UnifyEngine`1..ctor(TBranding branding, IEnumerable`1 additionalPlugInFactories, DirectoryInfo executingAssemblyLocation, IsolatedStorageFile isolatedStorageLocation)
at Unify.Service.IdentityBrokerServiceEngine..ctor(DirectoryInfo assemblyExcutionPath, IsolatedStorageFile isolatedFile, IIdentityBrokerBranding branding)
at Unify.Service.IdentityBrokerService.OnStart(String[] args)

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Probe names are used first, the new configuration files correctly wrote, but the old files should not have persisted.

The code to upgrade to particular probe names made the assumption that only either Identity Broker v4.0 or v3.0.x configurations were in the Extensibility directory.

The logic has been updated, to check for whether the existing file is already there; if it is it is removed and replaced with the additional probe name.

This means that the precedence for a probe-name file is always greater than the default Identity Broker v4.0 configurations.

Tested and confirmed locally, to be confirmed after the next incoming push.

Please confirm with the service installer

Confirmed in prdgrp-test1.