Recently, I worked on an issue where we saw the FIM Service (Forefront Identity Manager Service) intermittently stopping as well as failing to start.
In issue such as this one, the first place that we need to start is reviewing the Event Logs. Specifically the System Event Log which captures the starting and stopping of services. We also need to review the Forefront Identity Manager (FIMService) Event Log.
In the System Event Log I found three messages pertaining to the Forefront Identity Manager Service.
The Forefront Identity Manager Service service failed to start due to the following error: The service did not respond to the start or control request in a timely fashion.
The Forefront Identity Manager Event Log contained one error at the same time that the Forefront Identity Manager Service (FIMService) was attempting to start.
mscorlib: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileLoadException: Could not load file or assembly 'Microsoft.IdentityManagement.ExternalSettingsManager, Version=4.1.3114.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'Microsoft.IdentityManagement.ExternalSettingsManager, Version=4.1.3114.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' at Microsoft.ResourceManagement.Utilities.ExceptionManager.IsFatal(Exception exception) at Microsoft.ResourceManagement.Workflow.Hosting.WorkflowManager.ProcessException(Guid workflowInstanceIdentifier, Exception exception) at Microsoft.ResourceManagement.Workflow.Hosting.WorkflowManager.ProcessWorkflowInstanceOnFinalSignaledEvents(Guid workflowInstanceIdentifier, WorkflowInstanceResourceStatus workflowStatus, Guid cause, Exception exception, Guid& requestIdentifier, String& workflowInstanceType, String& requestStatusMessage) at Microsoft.ResourceManagement.Workflow.Hosting.WorkflowManager.WorkflowInstanceEnded(Guid workflowInstanceIdentifier, WorkflowInstanceResourceStatus status, Guid cause, Exception exception) at Microsoft.ResourceManagement.Workflow.Hosting.WorkflowManager.WorkflowInstanceTerminated(Object workflowEventWrapperObj) 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]. --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Delegate.DynamicInvokeImpl(Object args) at Microsoft.ResourceManagement.Utilities.ThreadManager.ProcessCallBack(Object stateObj)
Here are a few key items that stick out in the FIM Service Event Log:
Identifying the mismatch of the file versions the next place to look is the FIM Service Configuration File (Microsoft.ResourceManagement.Service.Exe.Config).
Now we have proven that the error message in the FIM Service Event Log correlate to the FIM Service Configuration File and the System Event Log. Our next step is to understand how to resolve the issue.
In order to resolve the issue, we need to be able to load the correct .NET Assembly. We can accomplish this task by modifying the bindingRedirect newVersion to the correct build version number.
*NOTE: The correct build version number is the build that you currently have installed.
Here is some other links that speak on the FIM Service not starting.