Overview
This article describes the error and its resolution, which occurs when items are not getting indexed. Upon investigation, it is found that there is a ref-def-mismatch. This is an uncommon and very specific situation, and all the logging and version numbers must be taken carefully into account.
Note: DLL version numbers are likely to differ when looking at other product versions than the ones mentioned.
GFI Archiver 2015 SR1 build 20150218 contains a DLL (assembly) named MArc.ConfigurationService.BAse.DLL. The version of this DLL is 1.0.0.10 for the mentioned server build.
The version of a DLL can be checked using the tool ILSpy.
The proper version of MArc.ConfigurationService.Base.DLL is in place. In this particular situation, an unknown component has a reference to an older version of MArc.ConfigurationService.Base.DLL, version 1.0.0.6. But as the proper version 1.0.0.10 is actually in place, the exception mentioned below is thrown, and the relevant indexing modules fail to load.
The error is logged when the Search service starts an indexing attempt, and it is logged in ..\Search\DebugLogs\IndexManager.log
which translates into:
"error", "IndexManager", "error: Store Synchronisation failed: System.IO.FileLoadException: file or assembly 'MArc.ConfigurationService.Base, Version = 1.0.0.6, Culture = neutral, PublicKeyToken = f28aa2eff54bac51', or its dependencies . of which one was unable to load manifest definition of the found assembly does not match the assembly reference. (exception from HRESULT: 0x80131040)
The original error message in Japanese is as follows:
"error ","IndexManager","error: Store Synchronisation failed: System.IO.FileLoadException: ファイルまたはアセンブリ 'MArc.ConfigurationService.Base, Version=1.0.0.6, Culture=neutral, PublicKeyToken=f28aa2eff54bac51'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外: 0x80131040)
;ファイル名 'MArc.ConfigurationService.Base, Version=1.0.0.6, Culture=neutral, PublicKeyToken=f28aa2eff54bac51' です。
; 場所 CLangAnalyzer.Initialize(CLangAnalyzer* )
; 場所 CLangAnalyzer.createAnalyzer()
; 場所 dtssDoIndexJob(dtsIndexJob* , Int16* )
; 場所 DIndexJob.Execute(DIndexJob* )
; 場所 InternalApiIndexJob.CJobQueue.Execute(CJobQueue* )
; 場所 InternalApiIndexJob.CApiIndexJob.Execute(CApiIndexJob* )
; 場所 CApiIndexJobForNet.Execute(CApiIndexJobForNet* )
; 場所 dtSearch.Engine.NetJobBase.ExecuteJob(DJobBase* )
; 場所 dtSearch.Engine.IndexJob.Execute()
; 場所 MArc.Search.Core.Index.AddMessagesToIndex(Boolean processFailedMessages)
; 場所 MArc.Search.Core.Index.ApplyMessageUpdates(ResultSet resultSet, Guid dbGuid)
; 場所 MArc.Search.Core.Index.Synchronise()
; 場所 MArc.Search.Core.IndexManager.PollStore()
;
;WRN: Assembly binding logging is turned OFF.
;To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
;Note: There is some performance penalty associated with assembly bind failure logging.
;To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
;"
Environment
- GFI Archiver 2015 SR1 build 20150218
- Windows 2003 R2, SP2, x86
Note: Although this issue has been observed on the environment mentioned above, it can potentially occur on other environments with other version numbers.
Root Cause
A corruption of the installation is assumed.
Resolution
- Take a backup of the system, including data.
- Uninstall GFI Archiver.
- Install GFI Archiver into the existing installation directory.