When I provision the User Profile Service it will not start. I started with a clean install of SharePoint 2013 (Build Version: 15.0.4420.1017) on Windows Server 2012. Initially I used PowerShell to configure the UPS service application with an account other than the SP_Farm. Once I realized there was an issue, I deleted the existing service app.
I then reprovisioned it using the central admin UI and the farm account. The farm account was a member of the local administrators group. I rebooted the server and attempted to start the UPS. Experienced the same issue.
I rechecked that the Farm account had the required permissions in AD. I stopped all SharePoint services and then then deleted the FIM certificates. I then rebooted the server and tried to start the service in Central Admin again. Same exact issues.
I then uninstalled SharePoint entirely and deleted all databases from the SQL Server. I set the Farm account as an SA on the server just in case. I reinstalled SharePoint, rebooted the server and ran the configuration scripts as per usual. Then I created the user profile service app using the Central Admin UI. I rebooted the server. I attempted to start the service from central admin. Same errors.
I deleted the UPS yet again. I added the farm account to Domain Admins. I restarted the server again. At his point the Farm account is an SA on the SQL Server and a Domain Admin. I reprovisioned the UPS. I attempted to start it. Same errors.
My next step will be to format the hard drive, reinstall the server OS, delete the databases, reinstall SharePoint and try everything over again.
Does anyone have a suggestion for what mistake I am making?
UPDATE - Jan, 10, 2014
We have done multiple rebuilds, searched AD for duplicate SPNs, possible duplicate CNs in AD, every possible rabbit hole has boon ferreted. All that we know for sure is that it's an error being thrown deep down in a SQL stored procedure. I am going to attempt the build in a clean lab with a new AD just to be sure that we can at least do that. But there has to be some sort of issue in our AD that is causing this.
EDIT:
Just to be clear regarding the common questions I have been asked:
The UPS was being run as the Farm Account. Initially this was not the case, though. The First time I reprovisioned the service it was the Farm account. So in every case except the initial failure, it was being run as the Farm account including the time I completely uninstalled SharePoint and reinstalled.
As I stated above, the Farm was and continues to be local admin.
It has log on locally rights. In fact, I logged on as the Farm account to the server to ensure this and to ensure that the default language was English.
- As I explained above, I followed the guidance in the link given (http://technet.microsoft.com/en-us/library/hh296982.aspx) to ensure the Farm account had the required permissions and was a member of the required groups. This was done before I used the Farm account to deploy the UPS and was verified on two separate instances.
- The Web Services App Pool is running.
END EDIT
Here are the errors. I have tried everything suggested in every link that Google has yielded to me. I even logged in as the Farm Account to ensure that its default language was English.
ILM Web Service Configuration
ILM Certificate could not be created: netsh http error:netsh http add urlacl url=http://+:5726/ user=CTCT\sp_farm sddl=D:(A;;GA;;;S-1-5-21-836088835-2467000696-1087451681-4209) Forefront Identity Manager
.Net SqlClient Data Provider: System.Data.SqlClient.SqlException: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 0. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ResourceManagement.Data.DataAccess.ProcessRequest(RequestType request) Forefront Identity Manager
.Net SqlClient Data Provider: System.Data.SqlClient.SqlException: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 2. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader() at Microsoft.ResourceManagement.Data.DataAccess.UpdateRequest(RequestType request, IEnumerable`1 updates) Forefront Identity Manager
.Net SqlClient Data Provider: System.Data.SqlClient.SqlException: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 2. at Microsoft.ResourceManagement.Utilities.ExceptionManager.ThrowException(Exception exception) at Microsoft.ResourceManagement.Data.Exception.DataAccessExceptionManager.ThrowException(SqlException innerException) at Microsoft.ResourceManagement.Data.DataAccess.UpdateRequest(RequestType request, IEnumerable`1 updates) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.UpdateRequestAndPersist(RequestType request) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request, Guid requestIdentifier, Object redispatchSingleInstanceKey) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.DispatchRequest[ResponseBodyType](RequestType request) at Microsoft.ResourceManagement.WebServices.ResourceManagementService.Create(Message request)