error: Invalid root node configured for pages. No root node with the name of "FrontendSiteMap".
Hi, i was migrated the sitefinity project to the web server, and i show the error
'Invalid root node configured for pages. No root node with the name of "FrontendSiteMap".'
i modified the configuration files and i solved it, but when linked the data base with the project and the aplication is breaking down. Any suggestion?
Hello Jose,
You could get this error if the project name has been changed - the name of the project is not the same as this one used when the project was installed
You could check App_Data\Sitefinity\Configuration\ProjectConfig.config file and projectName attribute. By default the attribute is not added to the config file. It is added after project installation The project name is used as an identifier by us.
In some case the error could appear if the connection to the database is lost. Would you check the connection to the database in the DataConfig.config file?
Regards,
Ivan Dimitrov
the Telerik team
I have a very similar problem. I've inherited some project files. I get this same error. How, specifically, can I resolve this issue?
Thanks.
Hello Lorne,
The reasons for the issue are
1. project name has been changed - project name is used as an identifier and it is not possible to change it on a later stage.
2. database connection
Kind regards,
Ivan Dimitrov
the Telerik team
Hi Ivan,
I am encountering the same issue.
1) The project name has not changed, well was certainly not changed by us. Is there anything in the deployment process that could cause it to change?
2) I checked, rechecked and checked again and the database connection is correct.
One odd thing to note is that is that if I change our local dev to the connection string from the production database we get the same error in our development environment.
Is it possible that database transfer was somehow incomplete? Is there anything at all that we could be missing?
Thanks,
Jason
Hello Jason,
Please compare the database size of the migrated and local database. Also check whether there are not changes to the App_Data/Sitefinity/Configuration.
These files - config files are closely related to the database.
Greetings,
Ivan Dimitrov
the Telerik team
Hi Team,
I am encountering the same issue. Everything is working properly on my local machine but not on the production server. I have copied the configuration files from my local machine and updated the connection string. The site was working properly on the production server before i upgraded to SP1
View site here
Any insight ?
Hi George ,
Please check whether there are not changes to the name of the database tables. Also the websites produces different errors related to the problem with the dlls - "Could not load file or assembly"
Regards,
Ivan Dimitrov
the Telerik team
Hi Ivan,
I was updating the dll references while you checked the website. if you check it again now you can see the error. I have upgraded the project on my local machine then i took the database and restored it on the production server. So basically i have the same files / db and it's working locally.
Seriously this is ridiculous ! What on earth is the cause for such an ambiguous error...
Can you please help ... I need to fix this urgently !
Hi Ivan,
This was literally xcopy / deploy from our development to production and everything in the App_Data/Sitefinity/Configuration folder except for the connection string in DataConfig.config is exactly the same between the two environments.
The database on the dev server has already changed as development proceeds still so these are different sizes. We had encountered errors trying to publish the database and had to use scripts for all tables EXCEPT sf_chunks which we had to use DTS Wizard to transfer into the production database. The database on production looks functionally complete. Is there a database table / field or some place where I check on some magical value that can correct this issue we are having.
Client press release announcing the website is now merely 2 hour away and I can't get this thing to work.
Thanks,
Jason
Ivan,
Can you help us out !
We're also running into this issue - our local sites work, but when the code is copied to the dev server we get this error. All files are identical (including \app_data\sitefinity\configuration), so the database connection is the same as well of course.
Thanks, Dan
I just copied the entire app_data folder out to the dev server again, and it resolved the issue. Seems to be something in the app_data folder other than the configuration files.
Thanks, DanO
I have copied the App_Data to the production server and still it's not working ... the only difference i have between the production server and my local machine is the database name
Log :
----------------------------------------
Timestamp: 3/16/2011 7:54:18 AM
Message: HandlingInstanceID: fbb43bb5-5930-47ad-bd3b-ccf3370e654d
An exception of type 'System.Configuration.ConfigurationErrorsException' occurred and was caught.
-------------------------------------------------------------------------------------------------
03/16/2011 02:54:18
Type : System.Configuration.ConfigurationErrorsException, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Message : Invalid root node configured for pages. No root node with the name of "FrontendSiteMap".
Source :
Help link :
BareMessage : Invalid root node configured for pages. No root node with the name of "FrontendSiteMap".
Filename :
Line : 0
Errors : System.Configuration.ConfigurationException[]
Data : System.Collections.ListDictionaryInternal
TargetSite :
Stack Trace : The stack trace is unavailable.
Additional Info:
MachineName : SKNET139
TimeStamp : 3/16/2011 7:54:18 AM
FullName : Telerik.Sitefinity.Utilities, Version=4.0.1210.0, Culture=neutral, PublicKeyToken=b28c218413bdf563
AppDomainName : /LM/W3SVC/21/ROOT-1-129447356457267430
ThreadIdentity : Anonymous
WindowsIdentity : NT AUTHORITY\NETWORK SERVICE
Requested URL : /
Category: ErrorLog
Priority: 0
EventId: 90020
Severity: Error
Title:Enterprise Library Exception Handling
Machine: SKNET139
App Domain: /LM/W3SVC/21/ROOT-1-129447356457267430
ProcessId: 11056
Process Name: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Thread Name:
Win32 ThreadId:11100
Extended Properties:
----------------------------------------
Hi Team,
Can you please help ... You can view the site here
Helloooooooooo
George,
I believe the cause of the issue for us was that one of the developers had added a master page / template to his local site, but the "copy to output directory" was marked as "do not copy" on the file, so when we did a deployment (using a build definition in VS 2010), the files were not copied to the server. Since our local and dev sites currently share a database the dev site blew up because it had a reference to a master page that didn't exist in the file system.
You might try using the data compare tools in VS 2010 to compare the two databases and see what CMS data is different between the sites - maybe that will provide some insight. Good luck!
-DanO
Thanks Dan for your suggestions.
I have the exact same database on my local machine and the production server. I have restored the database there. I haven't added any master page nor any one from the team. I am still waiting for some feedback from the Sitefinity team. I hope they will respond soon.
Hello George ,
If the connection string is different, make sure that in both environments the database user is db_owner or it is the same user. For example, if the user is db_owner it creates tables with dbo.tableName, if it is not - userName.tableName, which are two different tables. Maybe the data has not been published correctly. Could you please open sf_page_node table and make sure that it is not empty and the value of the app_name column for all records is '[ProjectName_From_ProjectConfig]/'.
Kind regards,
Ivan Dimitrov
the Telerik team
Hey everyone,
I recently received this error and wanted to report my results. However, I'm not convinced my scenario will be very applicable to others.
I was using the Sitefinity 4.1 SDK to run the Charity sample. After clicking run sample, I received the error mentioned in this thread. I also tried resetting the sample and still received the error.
--
Here is how I fixed this:
The SDK manages its samples in the C:\SitefinitySamples folder. From what I can see, the database is instantiated from files in the C:\SitefinitySamples\Database folder. For whatever reason (the SDK was running as Administrator) the SDK (or perhaps SQL Express?) was being denied access to these database files. Consequently the Charity web site was being initialized using some incomplete database...which caused the error shown above.
I'm not sure it matters, but I was using a SQL username/password (not windows authentication) to initialize the Charity sample.
To fix this I gave Everyone full control of the C:\SitefinitySamples. After that, I reset the sample and it worked fine. Granting Everyone full control of files isn't a great solution, but this is my personal workstation and I'm not overly concerned with security for a sample project.
--
Like I said, this is a narrow use-case and might not help others. However, the problem did seem to stem from an incomplete database or access denied.
Gabe Sumner
Telerik | Sitefinity CMS
I'm running into this problem this morning and nothing from the above thread seems to be helping.
My site was 4.0. I upgraded to 4.1, then 4.1 SP1 immediately afterwards and brought my site back online.
I had previously renamed my project and the project name did not carry over from my previous ProjectConfig.config file, so I added my new project name. I have checked the sf_page_node table and the app_name column has the same project name that my ProjectConfig.config has.
When I try to view the homepage I receive the same error as the title of the thread. When I try to login through /sitefinity none of my usernames/passwords are working. I have checked the connectionstring and everything looks fine.
Any other ideas on how I can get this site back up?
I am having the exact same issues as those described by Mark. I did not have the project name problem.
I receive the "Invalid root node configured..." error on the home page and none of my username/passwords are working.
I also have checked permissions, connection string, data in the various tables and so on.
Looking through my database, I think I've found out why my site is experiencing this behavior. Many of my times are duplicated: db_owner.table_name and dbo.table_name.
This happened during the upgrade because my 4.0 backup does not have the duplication. dbo.sf_users still has my username while db_owner.sf_users does not. It does not appear the updater touched the dbo.* copies but rather made new db_owner.* tables.
What's the solution here?
The root to my problem was that my tables were owned by dbo and not db_owner. I found a script that could change ownership and now 4.1 SP1 is working as expected. Here's the SQL script I needed to use:
DECLARE @old sysname, @new sysname, @sql varchar(1000)
SELECT
@old = 'dbo'
, @new = 'db_owner'
, @sql = '
IF EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLES
WHERE
QUOTENAME(TABLE_SCHEMA)+''.''+QUOTENAME(TABLE_NAME) = ''?''
AND TABLE_SCHEMA = ''' + @old + '''
)
EXECUTE sp_changeobjectowner ''?'', ''' + @new + ''''
EXECUTE sp_MSforeachtable @sql
I ran into the exact same problem.
I renamed my App_Data\Sitefinity\Configuration\ProjectConfig.config
to ProjectConfig_old.config
Downloaded my App_Data\Sitefinity\Configuration\ProjectConfig.config from the server and compared it. And yes the Project name was GONE. Simply empty.
I put my project name back in and uploaded the file, restarted the server and the site was back on!
So this fixed it!
BUT - I tell you it was no move to production, no changes - unbelivable as it might sound - this just happened.
So Telerik - do me and others a favoir and think about what, when, were the ProjectConfig.config File could have been changed online in a production envirement!!
Markus
Hey everyone,
I'm about to release a 30 minute video and accompanying blog post on deploying Sitefinity. During research & recording I encountered this troublesome error. This thread led me to the solution. Like others in this thread, my development database was using tables that looked this like:
dbo.[tableName]
However, on the production server/database Sitefinity was expecting database tables that look like this:
charity.[tableName]
'Charity' is the database username I'm using through the shared hosting provider.
Because these tables didn't exist, Sitefinity created them...but they are empty. When Sitefinity tried to find a web page it throws the error shown in the subject of this thread.
--
My solution was to remove charity tables that Sitefinity created by executing this SQL:
EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"
BEWARE!!!! This command will obliterate everything in your database.
Then I re-transferred the database (with the dbo table names) to the production server and renamed all of these tables using the following SQL:
DECLARE
tabcurs
CURSOR
FOR
SELECT
'dbo.'
+ [
name
]
FROM
sysobjects
WHERE
xtype =
'u'
OPEN
tabcurs
DECLARE
@tname NVARCHAR(517)
FETCH
NEXT
FROM
tabcurs
INTO
@tname
WHILE @@fetch_status = 0
BEGIN
EXEC
sp_changeobjectowner @tname,
'charity'
FETCH
NEXT
FROM
tabcurs
INTO
@tname
END
CLOSE
tabcurs
DEALLOCATE
tabcurs
Hey all
If you are using the SQL Server Import and Export Wizard you can easily bypass this issue by specifying the correct mappings.
During the wizzard in the "table and views" step, you can click the "Edit Mappings" button and enter a new "destination schema name".
E.g. if your username in the connectionString is myUser set the dest. schema name to myUser.
Complete the wizzard and everything should work as expected, at least it did for me :P
Regards,
Lukas
This is absurd. This problem needs to be fixed ASAP and/or better messages need to come from Sitefinity as to what the issue is.
Hi
This solution worked for me for the above error and is very quick (no scripts/import or export) - just a setting in your external SQL Provider (using Microsoft SQL Manager). I am using a external hosting provider arvixe but this would probably work on other providers. When restoring database from local SQLExpress to external hosting provider SQL all I did was to make sure security (off root SQL Tree / not the security tab in your database) had my SQLUserId with the default schema of "dbo". By default (after restore) you may find that the schema on your SQL provider has defaulted to your SQLUserId rather than dbo as it is in your local database. After you have finished...then recycle application pool and/or web site. All fixed!
Hope this is helpful for any one else.
Brian
Brian, you are brilliant. How the heck did you figure that out? I also host with arvixe the only challenge using SQL Management studio takes forever to load the user properties. It is easier to do this by script:
USE
[database_name]
ALTER
USER [User_name] WITH DEFAULT_SCHEMA = dbo
Thanks Jan for feedback. I hadn't heard anything on this until your post so hope it continues to help anyone frustrated by errors or earlier proposed forum work arounds. BTW - Lots of trial and error to get to this solution and....Yes hosting provider is slow on SQL Management Studio for me too. Your script certainly the way to go. Thanks
Brian
I concur. Brian, you are a genius. This really helped. Thanks so much!
Just an FYI for anybody else: Along with replicating our DB and using Brian's method to check the dbo, we also have to replicate the
Configuration folder under App_Data, except for DataConfig.config - and
then and only then will the QA server work.
My suggestion for improvement would be to have all those settings stored
in the Configuration folder to somehow be contained in the DB. I'm sure
there are reasons why this is the case, though, but we have to develop more automation steps than anticipated to get a replication procedure in place.
I've encountered roughly the same issue. I've only been working on my development machine with a development database while I evaluate SiteFinity. Yesterday, everything was working fine. The very last thing I did was to set up an LDAP connection. All I did is:
- Create a new LDAP connection under Settings -> Advanced -> Security -> LDAP Settings -> LDAP Connections
- Change the Authentication settings within IIS.
Then I moved on to some production issues. I came back to the SiteFinity site today and had the error described in this thread. After reading all the posts, I found that the "projectName" property in the ProjectConfig.config was empty. I definitely did not touch this - I've never even looked at this file.
The first thing I did was set the Authentication settings in IIS back to what they were. That didn't fix it. Then, I found what it should be in one of the other posts in this thread and copied it from the database field sf_page_node..app_name.
That fixed my issue.
-BEP ( Brian, but not the Brian that posted the fix above )
"Downloaded my App_Data\Sitefinity\Configuration\ProjectConfig.config from the server and compared it. And yes the Project name was GONE. Simply empty.
I put my project name back in and uploaded the file, restarted the server and the site was back on!
So this fixed it!
BUT - I tell you it was no move to production, no changes - unbelivable as it might sound - this just happened."
Hi,
I just upgraded to 5.0 from 4.4 and I had this error "'Invalid root node ..... "FrontendSiteMap".' The projectName was not empty in App_Data\Sitefinity\Configuration\ProjectConfig.config file.
How do I fix?
Thanks,
Hi,
I just upgraded to 5.0 from 4.4 and I had this error "'Invalid root node ..... "FrontendSiteMap".' The projectName was not empty in App_Data\Sitefinity\Configuration\ProjectConfig.config file.
How do I fix?
Thanks,
Hi Nelson,
Check whether the SQL server was configured correctly to serve the schema of your database. If you have custom db schema name you should set all appropriate configurations, otherwise the system will re-create all tables ( which will be empty ) under the default dbo owner.
Greetings,
Victor Velev
the Telerik team
Reset the user account to dbo right and it worked.
Thanks Victor.
Ivan already mentions this in one of his earlier responses, but it still tripped me up and thought I would post here for posterity. Ivan says:
Could you please open sf_page_node table and make sure that it is not empty and the value of the app_name column for all records is '[ProjectName_From_ProjectConfig]/'.
Note the *slash* after the project name (I didn't see it and blame the parenthesis, apostrophe, etc for blinding me) . That is, if project name is "MyProject", the value in app_name must be "MyProject/" (note the slash)
Hi,
Did you manage to get your site online? For anyone deploying Sitefinity to Arvixe or any other shared hosting and getting the Frontend node error you can check out Gabe's blog where he details a SQL script to run to change the schema or this blog post (easier) to generate .sql scripts and edit them to change your schema.
All the best,Brian's solution worked for us. In Arvixe, the user's Default Schema was the user ID. Changing the Default Schema to 'dbo' resolved our issue of duplicate tables prepended with the user ID.
Just a note that in version 8 this error exists if the database is completely gone. I invoked it (deliberately) with an Azure deployment. Setup the cloud app without a backend database. I was expecting some kind of SQL error but got this instead (and the call stack showed nothing from the *.Data assemblies). Would be nice if the right error message bubbled up. I still don't know the significance of the project name and why/how/where it's referenced however once I brought the database back online the site was fine.
Hi Bil,
Thank you for your feedback. I have forwarded this information to the developers team and they will take it into consideration for the future releases.
Regards,
Sabrie Nedzhip
Telerik