The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
Hi,
My laptop's hard drive become corrupt and as a result i lost my umbraco db instance. Luckily my code is in a remote repository so everything is not lost or is it?
When i re-cloned my solution files from my repo, set up IIS and created a new db, upon rebuilding the site (with no build errors) i am faced with the following
I reset my web.config to the following in the hope it would re-trigger the umbraco install?
If i do /umbraco it takes me to the login screen. Obviously the credentials dont wok because a db doesn't exist, im also unable to perform the Health Check data integrity dashboard to fix it.
Any ideas please? is this a case of creating a new solution and porting everything across ?
I think you'll want to set the connection string to point to your newly created, but empty, database and then restart the site. Umbraco should check to make sure the DB schema is correct and start the installer/upgrader if not - which it won't be in this case.
Also, in case it's not already clear to you - the DB is what contains some Umbraco definitions for things like users, doc types, and other Umbraco-specific stuff. So that will all be lost if the original DB is gone. Seems like you maybe understood that already.
If that doesn't do it, you might consider setting up a fresh Umbraco install (from the zip or nuget package) then laying your code down on top of that - of course you'll still not have the structures from the DB, but the site will be setup correctly at least.
Unfortunately for me i am fully aware that i have lost all the umbraco meat and bones to the site :(. I have just about accepted that that i will have to recreate all my doctypes, data types etc. from scratch :(
When i specify the full connection string to my new empty database i do see the umbraco install splash screen, however it just hangs.
In the past i have noticed that it hands when you have specified values fo the connectionSting which i why i left them blank. I am able to replicate this with a new install to. Do you know why it could be hanging when i specify a connectionstring?
What i don't quite understand is with no connectionstring it still acts as if its referencing a db? How is that possible?
Have you looked into the log yet? That'd be my first step here. But, assuming you have done that and there's nothing useful there I'd check up on the permissions for the IIS AppPool - and I gather you are using full-IIS rather than IIS Express only by your message. If that's not the case, and you are using IIS Express, then check the folder/file permissions for the location you are using.
Yes thats right i am using a full version of IIS and not express. I have just checked the logs and i see this
2018-01-02 20:53:20,391 [P13964/D2/T10] ERROR Umbraco.Core.Persistence.UmbracoDatabase - Exception (979d7c9b).
System.Data.SqlClient.SqlException (0x80131904): Invalid object name 'umbracoUser'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteScalar()
at Umbraco.Core.Persistence.PetaPocoCommandExtensions.<>c__DisplayClass11_0.<ExecuteScalarWithRetry>b__0()
at Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)
at Umbraco.Core.Persistence.Database.ExecuteScalar[T](String sql, Object[] args)
ClientConnectionId:9ee2f42d-4ddf-41ba-8e20-c8dd98ca9e50
Error Number:208,State:1,Class:16
System.Data.SqlClient.SqlException (0x80131904): Invalid object name 'umbracoMigration'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
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 StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteDbDataReader(CommandBehavior behavior) in c:\Code\github\SamSaffron\MiniProfiler\StackExchange.Profiling\Data\ProfiledDbCommand.cs:line 248
at Umbraco.Core.Persistence.PetaPocoCommandExtensions.<>c__DisplayClass5_0.<ExecuteReaderWithRetry>b__0()
at Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)
at Umbraco.Core.Persistence.Database.<Query>d__74`1.MoveNext()
ClientConnectionId:9ee2f42d-4ddf-41ba-8e20-c8dd98ca9e50
Error Number:208,State:1,Class:16
2018-01-02 20:53:16,973 [P13964/D2/T1] ERROR Umbraco.Core.ApplicationContext - Error determining if application is configured, returning false
ERROR Umbraco.Web.Install.InstallHelper - An error occurred in InstallStatus trying to check upgrades
Any idea? I have not investigated just yet but thought i would respond. Its as if it thinks im upgrading. FYI IUSR and IIS_IUSRS have full permissions to all directories.
If you haven't already you can try removing the value from umbracoConfigurationStatus
<add key="umbracoConfigurationStatus" value="" />
It does look like the upgrader is starting and making some assumptions that the DB schema is already there. I believe clearing the version value will cause the installer to run.
Also, can you confirm the DB really is empty - i.e., no schema?
The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
Hi,
My laptop's hard drive become corrupt and as a result i lost my umbraco db instance. Luckily my code is in a remote repository so everything is not lost or is it?
When i re-cloned my solution files from my repo, set up IIS and created a new db, upon rebuilding the site (with no build errors) i am faced with the following
I reset my web.config to the following in the hope it would re-trigger the umbraco install?
If i do /umbraco it takes me to the login screen. Obviously the credentials dont wok because a db doesn't exist, im also unable to perform the Health Check data integrity dashboard to fix it.
Any ideas please? is this a case of creating a new solution and porting everything across ?
Thanks
Hi Paul -
I think you'll want to set the connection string to point to your newly created, but empty, database and then restart the site. Umbraco should check to make sure the DB schema is correct and start the installer/upgrader if not - which it won't be in this case.
Also, in case it's not already clear to you - the DB is what contains some Umbraco definitions for things like users, doc types, and other Umbraco-specific stuff. So that will all be lost if the original DB is gone. Seems like you maybe understood that already.
If that doesn't do it, you might consider setting up a fresh Umbraco install (from the zip or nuget package) then laying your code down on top of that - of course you'll still not have the structures from the DB, but the site will be setup correctly at least.
-Paul
Hi Paul,
Thanks for the response :).
Unfortunately for me i am fully aware that i have lost all the umbraco meat and bones to the site :(. I have just about accepted that that i will have to recreate all my doctypes, data types etc. from scratch :(
When i specify the full connection string to my new empty database i do see the umbraco install splash screen, however it just hangs.
In the past i have noticed that it hands when you have specified values fo the connectionSting which i why i left them blank. I am able to replicate this with a new install to. Do you know why it could be hanging when i specify a connectionstring?
What i don't quite understand is with no connectionstring it still acts as if its referencing a db? How is that possible?
Thanks again for your advice :)
Hi Paul -
Have you looked into the log yet? That'd be my first step here. But, assuming you have done that and there's nothing useful there I'd check up on the permissions for the IIS AppPool - and I gather you are using full-IIS rather than IIS Express only by your message. If that's not the case, and you are using IIS Express, then check the folder/file permissions for the location you are using.
-Paul
Hi Paul,
Yes thats right i am using a full version of IIS and not express. I have just checked the logs and i see this
Any idea? I have not investigated just yet but thought i would respond. Its as if it thinks im upgrading. FYI IUSR and IIS_IUSRS have full permissions to all directories.
Thanks again for the response
Hi Paul -
If you haven't already you can try removing the value from umbracoConfigurationStatus
It does look like the upgrader is starting and making some assumptions that the DB schema is already there. I believe clearing the version value will cause the installer to run.
Also, can you confirm the DB really is empty - i.e., no schema?
-Paul
Hi Paul,
I figured this just as you posted and you wee spot on :). I needed to do the following:
and what you suggested
I stumbled on the solution here from @Sebastiaan Janssen
https://stackoverflow.com/questions/40852305/umbraco-7-5-4-installation-error-invalid-objectname-cmscontent
P.s for anyone reading this my db was completely empty
Thanks for all your help :)
is working on a reply...