Did you know of the GetSettingsFromPage() method?
Finding the start page in an EPiServer solution is usually easy as pie – it is accessible using a static property on the PageReference class.
But if you have several sites sharing database in an Enterprise solution, and you are trying to get hold of the start page from inside a scheduled task, you will soon notice that it’s a bit more tricky.
When the scheduled task is executed you will have no control over which of the sites the PageReference.StartPage will point to.
(In my tests, PageReference.StartPage seem to run in the context of the first site configured in the site section in episerver.config).
This is where the GetSettingsFromPage method becomes handy – if you have a reference to a page on your site, you can find the site settings for that page. When you have the settings, it’s pretty straight forward to find the start page:
1: Settings settingsFromPage =
2: DataFactory.Instance.GetSettingsFromPage(page.PageLink);
3: PageReference myStartPage =
4: new PageReference(settingsFromPage.PageStartId);
The ironic part is that I found the solution while searching and finding an old blog post written by myself… (!).
Thank you for sharing this. Previously I've used my own function which recursively searches for the start page and then uses the Id of the found page to get the right settings.
Nice. :)
Interesting! Thanks for sharing this.
Very nice .I am developing an enterprise sites and was thinking i will have to write some custom code to achieve this .