Sitefinity Backend Pages - Invalid URI: The URI scheme is not valid
Hi,
We have just upgraded to 4.3.1885.0. When accessing backend pages, we get an error on expanding the Sitefinity node.
Error: Invalid URI: The URI scheme is not valid.
Looking at the network stack, the error seems to occur at:
/Sitefinity/Services/Pages/PagesService.svc/tree/?root=backend&hierarchyMode=true&sortExpression=Title%20ASC
The error occurs across all browsers (FF 8, IE 9, Chrome 16)
The site does not have any custom modules installed.
We have reproduced the same error message on two separate sites consistently.
Thanks
Nasser
We have the same issue upgrading from 4.2SP1 to 4.3 - we see this in the back end pages
Hi,
The problem is coming from a possible bug that is related to the Ecommerce module.
Can you please check if you have the following lines in the system config:
<
add
version
=
"4.2.1733.0"
name
=
"Catalog"
/>
<
add
version
=
"4.2.1733.0"
name
=
"Orders"
/>
<
add
version
=
"4.2.1733.0"
name
=
"Shipping"
/>
1. Apply a license which has the Ecommerce module included ( Trial will do )
2. Browse the backend pages and remove the pages under the Ecommerce Tree ( including the Ecommerce page as well ).
3. Edit the System.Config file to look like this:
<
remove
name
=
"Catalog"
/>
<
remove
name
=
"Orders"
/>
<
remove
name
=
"Shipping"
/>
This works for my sites - why would those pages be loaded by default when the license doesn't have that module on it? Seems incorrect.
Hi Cheryl Forrest,
It seems that all Ecommerce resources were installed on the initial setup and then hid because of the license edition ( but resulted in the error you were getting ). We are still investigating for probable solutions of the issue.
All the best,
Victor Velev
the Telerik team
I updated from 4.2 SP1 to 4.4 and have this same issue but the process you describe doesn't seem to fix the problem.
Hi Helmut,
Can you please share more details about your project, because the steps provided have helped many clients. Do you have custom modules installed?
Kind regards,
Victor Velev
the Telerik team
So what about providing a possiblity to download a license, even a trial?
"Apply a license which has the Ecommerce module included ( Trial will do )"
Hello Joakim,
We have replied to you in the support ticket you have opened.
Greetings,
Victor Velev
the Telerik team
We are getting a similar error after upgrading to Sitefinity 4.4 on one of our sites. The error come up right away when we attempt to access the Backend Pages rather than when we attempt to expand a section. In this case the "Loading" bar does not go away so we do not have access to the backend pages at all.
From what we can tell the problem is relating to the fact that some of the URLs for additional pages we manually created in the backend have periods in them such as www.websiteUrl.com/.../scorecard-v3.0-export which was allowed in previous versions of Sitefnity, but is no longer allowed in the new version.
Is there an easy way to update the page URLs without being able to access the pages through the Administration Backed Pages section? We can not access that section of the administration to update the URLs because of the "Invalid URI: The URI scheme is not valid." error that's coming up and preventing the page list from loading.
Hello,
You can use the API to update the page properties ( the URL for example ). We have a sample code that can help you:
www.sitefinity.com/.../sitefinity-essentials-pages-modifying-pages.html
Also have you verified that the problem is not related to additional entries in the System.Config?
Greetings,
Victor Velev
the Telerik team
We had made the changes you recommended to the system.config file above. Our system.config file currently has the following entries.
<
servicesModules
>
<
add
version
=
"4.1.1574.0"
name
=
"Search"
/>
</
servicesModules
>
<
applicationModules
>
<
remove
name
=
"Catalog"
/>
<
remove
name
=
"Orders"
/>
<
remove
name
=
"Shipping"
/>
<
add
version
=
"4.4.2117.0"
name
=
"News"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Blogs"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Events"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Libraries"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Forms"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Lists"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Analytics"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Publishing"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Scheduling"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Newsletters"
/>
<
add
version
=
"4.4.2117.0"
name
=
"GenericContent"
/>
<
add
version
=
"4.4.2117.0"
name
=
"ControlTemplates"
/>
<
add
version
=
"4.4.2117.0"
name
=
"Migration"
/>
<
add
version
=
"4.4.2117.0"
name
=
"ModuleBuilder"
/>
<
add
version
=
"4.4.2117.0"
name
=
"DynamicModule"
/>
</
applicationModules
>
Like Joakim I can't even get into the packend pages. It just displays the loading image after pressing hte OK to continue.
No custom modules installed, below is the systemconfig (with the SMTP changed)
<?xml version="1.0" encoding="utf-8"?>
<systemConfig xmlns:config="urn:telerik:sitefinity:configuration" xmlns:type="urn:telerik:sitefinity:configuration:type" config:version="4.4.2117.0" build="2117" previousBuild="1733">
<servicesModules>
<add version="4.4.2117.0" name="Search" />
</servicesModules>
<applicationModules>
<add version="4.4.2117.0" name="News" />
<add version="4.4.2117.0" name="Blogs" />
<add version="4.4.2117.0" name="Events" />
<add version="4.4.2117.0" name="Libraries" />
<add version="4.4.2117.0" name="Forms" />
<add version="4.4.2117.0" name="Lists" />
<add version="4.4.2117.0" name="Analytics" />
<add version="4.4.2117.0" name="Publishing" />
<add version="4.4.2117.0" name="Scheduling" />
<add version="4.4.2117.0" name="Newsletters" />
<add version="4.4.2117.0" name="GenericContent" />
<add version="4.4.2117.0" name="ControlTemplates" />
<add version="4.4.2117.0" name="Migration" />
<add version="4.4.2117.0" name="ModuleBuilder" />
<add version="4.4.2117.0" name="DynamicModule" />
<remove name="Catalog" />
<remove name="Orders" />
<remove name="Shipping" />
</applicationModules>
<smtpSettings host="domain.com" userName="Username" password="Password" />
<outputCacheSettings enableOutputCache="False" enableClientCache="False" />
</systemConfig>
We're also getting the following that comes up in the error log when the site is started at this point. No new entries are made to the log when attempting to access the Backend Pages, just the popup error noted above.
----------------------------------------
Timestamp: 1/11/2012 6:18:29 PM
Message: HandlingInstanceID: 7920b19b-5a3f-4044-8467-32b009b14745
An exception of type 'System.Configuration.ConfigurationErrorsException' occurred and was caught.
-------------------------------------------------------------------------------------------------
01/11/2012 10:18:29
Type : System.Configuration.ConfigurationErrorsException, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Message : There is no suitable converter for the type Telerik.Sitefinity.Configuration.ConfigProperty to convert it to string. This type cannot be persisted through the configuration.
Source : Telerik.Sitefinity
Help link :
BareMessage : There is no suitable converter for the type Telerik.Sitefinity.Configuration.ConfigProperty to convert it to string. This type cannot be persisted through the configuration.
Filename :
Line : 0
Errors : System.Configuration.ConfigurationException[]
Data : System.Collections.ListDictionaryInternal
TargetSite : System.String GetStringValue(System.Object, Telerik.Sitefinity.Configuration.ConfigProperty)
Stack Trace : at Telerik.Sitefinity.Configuration.ConfigElement.GetStringValue(Object value, ConfigProperty property)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlElement(XmlDocument xmlDoc, ConfigElement config, ConfigElement defaultConfig, String tagName, Type definedType, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionElement(XmlDocument xmlDoc, ConfigElement element, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionItem(XmlDocument xmlDoc, IConfigElementItem item, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollection(XmlDocument xmlDoc, ConfigProperty property, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlElement(XmlDocument xmlDoc, ConfigElement config, ConfigElement defaultConfig, String tagName, Type definedType, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionElement(XmlDocument xmlDoc, ConfigElement element, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionItem(XmlDocument xmlDoc, IConfigElementItem item, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollection(XmlDocument xmlDoc, ConfigProperty property, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlElement(XmlDocument xmlDoc, ConfigElement config, ConfigElement defaultConfig, String tagName, Type definedType, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionElement(XmlDocument xmlDoc, ConfigElement element, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionItem(XmlDocument xmlDoc, IConfigElementItem item, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollection(XmlDocument xmlDoc, ConfigProperty property, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlElement(XmlDocument xmlDoc, ConfigElement config, ConfigElement defaultConfig, String tagName, Type definedType, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionElement(XmlDocument xmlDoc, ConfigElement element, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollectionItem(XmlDocument xmlDoc, IConfigElementItem item, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlCollection(XmlDocument xmlDoc, ConfigProperty property, ConfigElementCollection collection, ConfigElementCollection defaultCollection, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlElement(XmlDocument xmlDoc, ConfigElement config, ConfigElement defaultConfig, String tagName, Type definedType, Boolean isPolicy, XmlElementFactory xmlElementFactory)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.<>c__DisplayClass1.<
SaveElement
>b__0(XmlDocument xmlDoc)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.GetXmlDocument(Func`2 getXmlElement)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.SaveElement(ConfigElement config, Func`2 getXmlElement, String relativePath)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.SaveElement(ConfigElement config, ConfigElement defaultConfig, Boolean isPolicy)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.SaveSectionInternal(ConfigSection section)
at Telerik.Sitefinity.Configuration.Data.XmlConfigProvider.SaveSection(ConfigSection section)
at Telerik.Sitefinity.Configuration.ConfigManager.SaveSection(ConfigSection section)
at Telerik.Sitefinity.Services.InstallContext.SaveChanges(Boolean clean)
at Telerik.Sitefinity.Services.SystemManager.InitializeModule(ModuleSettings settings, InstallContext installContext, Boolean start)
Additional Info:
MachineName : USER-PC
TimeStamp : 1/11/2012 6:18:29 PM
FullName : Telerik.Sitefinity.Utilities, Version=4.4.2117.0, Culture=neutral, PublicKeyToken=b28c218413bdf563
AppDomainName : 49b3af6d-1-129707794958672943
ThreadIdentity :
WindowsIdentity : User-PC\User
Requested URL : http://localhost:59907/default.aspx
Category: ErrorLog
Priority: 0
EventId: 9010
Severity: Warning
Title:Enterprise Library Exception Handling
Machine: USER-PC
App Domain: 49b3af6d-1-129707794958672943
ProcessId: 6240
Process Name: C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0\WebDev.WebServer40.exe
Thread Name:
Win32 ThreadId:7820
Extended Properties:
----------------------------------------
Writing code to get rid of all the pages with "Invalid Resource" in the title seems to have corrected the problem here. The code used is listed below. Anyone out there that wants to use the script, please be sure to back up your database before using it in case it does something unintended.
string output;
PageManager pageManager = PageManager.GetManager();
foreach (PageNode node in pageManager.GetPageNodes()) //.Where(n => n.Id == pageNodeId).FirstOrDefault();
output = "";
if (node.UrlName.Contains('.'))
if (output == "")
Page.Response.Write("<
p
><
b
>" + node.Title + "</
b
><
br
/>");
Page.Response.Write("<
i
>" + node.UrlName + "</
i
><
br
/>");
if (node.UrlName.Contains("Invalid resource:"))
Page.Response.Write("<
h1
>Deleted!</
h1
>");
try
pageManager.Delete(node);
pageManager.SaveChanges();
catch(Exception)
foreach (PageUrlData urlData in node.Urls)
if (urlData.Url.Contains('.'))
if (output == "")
Page.Response.Write("<
p
><
b
>" + node.Title + "</
b
><
br
/>");
Page.Response.Write(urlData.Url + "<
br
/>");
if (output != "")
Page.Response.Write(output);
Page.Response.Write("</
p
>");
This is frustrating!
Our trial license expired yesterday (ordinarily not a problem, I just installed the production license and kept going--we're within a few days of launch). However, now I run into the problem detailed in this thread with the back end pages, and installing my trial license in order to fix this bug doesn't help because it's expired, and there appears to be no way to extend it (outside of engaging Sales).
So I followed your steps, and installed the Professional trial license, but now the entire back end has invalid resource errors. I still have the invalid URI error, so I can't follow your steps to remove the ecommerce pages, and now the Newsletters, ecommerce and Analytics page groups are throwing the invalid resource error!
I'm open to suggestions, but this is blowing my deadline out of the water. I know double-posting is a no-no, but I'm also opening a support ticket, as I need to get this resolved ASAP.
Mike Sharp
Additional Info:
I downloaded and activated a standard edition trial license from another account, and I still can't access many of the normal back end pages (newsletters, analytics, ecommerce), and can't get to the back end administration for fix anything in the node title. See attached image.
Hello Mike,
We have answered you in the support ticket you opened.
All the best,
Victor Velev
the Telerik team
Thanks Victor. Worked for me.
Hello Mike/Victor,
I have exactly the same problem as Mike (see his screenshot "sf-backend-errors.png") 3 posts above. What was the solution?
Additional info, in my develop environment I had no problems, I got this problem after I published the website and activated the Enterprise license (which I already used in my develop environment).
Thanks in advance.
Peter
Hi Peter,
If you are seeing the invalid resource labels, please restart the application so the system can refresh its resources, which were unlocked by the new license.
All the best,
Victor Velev
the Telerik team
Wow, that was a quick reply :)! Thanks for the answer, it's working again!
Regards,
Peter
I just applied 5.0.2800.0 (Standard + Mobile Web) and got this error again. (I've had it before.) Why does this keep happening? I've never had an enterprise license.....
I finally got this to work using an enterprise trial, but I'd like to know 1) what is the root cause of this problem, 2) if it's on my end, how to I eradicate it permanently, and/or 3) if it's not on my end, will you please ensure that I won't run into it again since I've used up my enterprise trial.