London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Manoj Kumawat
Aug 26, 2019
  3916
(4 votes)

Accessing ContentReference in schedule job or Initialization module where you receive HttpContext as null

Often you want to work with content in an initialization module or a scheduled job and use a reference to the Start page. But in these scenarios, there is no HTTP context, so the system does not know what site you want to work with. 

One fix is to set a wildcard * as a hostname in the configuration of one of you sites. This site will then be returned by ContentReference.StartPage.

Here is an example of how you can customize this. Go to your website > Admin> config > Manage Websites and do the following - 

It should now give you a reference of StartPage of the site, see below- 

Better Alternative

A more flexible alternative is to use the ISiteDefinitionRepository to get a list of all sites and write logic to select the one you want to work with.

Here is how you can make usage of this repository - 

var siteDefinitionRepo = ServiceLocator.Current.GetInstance<ISiteDefinitionRepository>();
var siteDefinitions = siteDefinitionRepo.List().ToList();

Now you can work with the site item which we've just got via this Repository.

On a side note, However I've created an instance of above repository just for a demo purpose but you should always inject your dependencies and get them resolved with IOC container like StructureMap which Episerver recommends.

Have a great day!

Aug 26, 2019

Comments

valdis
valdis Aug 26, 2019 07:06 PM

I was about to write about ServiceLocator and then read your last sentence ;))

Please login to comment.
Latest blogs
Optimizely Frontend Hosting Beta – Early Thoughts and Key Questions

Optimizely has opened the waitlist for its new Frontend Hosting capability. I’m part of the beta programme, but my invite isn’t due until May, whil...

Minesh Shah (Netcel) | Apr 23, 2025

Developer Meetup - London, 21st May 2025

The London Dev Meetup has been rescheduled for Wednesday, 21st May and will be Candyspace 's first Optimizely Developer Meetup, and the first one...

Gavin_M | Apr 22, 2025

Frontend hosting for PaaS & SaaS CMS

Just announced on the DXP, we FINALLY have a front end hosting solution coming as part of the DXP for modern decoupled solutions in both the PaaS a...

Scott Reed | Apr 22, 2025

Routing to a page in SaaS CMS

More early findings from using a SaaS CMS instance; setting up Graph queries that works for both visitor pageviews and editor previews.

Johan Kronberg | Apr 14, 2025 |