Magnus Stråle
Aug 12, 2010
  9489
(0 votes)

Debugging initialization modules

I have covered the new initialization system as introduced with EPiServer CMS 6 and EPiServer Community 4 in previous blog posts. See http://world.episerver.com/Blogs/Magnus-Strale/Dates/2009/12/The-new-initialization-system---How-to-write-an-initialization-module-and-advanced-topics/ Just back from a long summer vacation, one of the first tasks was related to a new initialization module and I just wanted to do a quick “debug exploration” before starting on the work proper.

However I utterly failed to get the debugger to halt on a breakpoint in the initialization module. After a coffee I realized that the problem was that the initialization modules execute before the debugger actually hooks up to the process due to the initialization code being invoked from the HttpApplication constructor (actually the EPiServer.Global constructor).

However there is a simple workaround:

  1. Open the EPiServerFramework.config file.
  2. Remove the <automaticSiteMapping> section.
  3. Save the file.
  4. Set your breakpoints in VisualStudio.
  5. Start your EPiServer web app from VisualStudio.

You will now get the debugger to break, since the initialization system will now abort on the first invocation and delay execution until the first BeginRequest, and at that stage the debugger is attached and functional.

Note that the file EPiServerFramework.config will be automatically updated so you might want to set it to read-only to avoid having to edit it constantly.

Aug 12, 2010

Comments

Thomas Dane
Thomas Dane Jul 24, 2017 06:21 PM

This just saved me a lot of time. Thanks very much! 

Johan Book
Johan Book Jul 25, 2017 02:50 AM

In recent versions of Episerver the automaticSiteMapping-section has been removed. A working method using IIS start/stop can be found here:

http://jondjones.com/learn-episerver-cms/episerver-developers-guide/episerver-initialization-module/how-to-debug-an-episerver-scheduled-job-or-initialization-module

Please login to comment.
Latest blogs
Increase timeout for long running SQL queries using SQL addon

Learn how to increase the timeout for long running SQL queries using the SQL addon.

Tomas Hensrud Gulla | Dec 20, 2024 | Syndicated blog

Overriding the help text for the Name property in Optimizely CMS

I recently received a question about how to override the Help text for the built-in Name property in Optimizely CMS, so I decided to document my...

Tomas Hensrud Gulla | Dec 20, 2024 | Syndicated blog

Resize Images on the Fly with Optimizely DXP's New CDN Feature

With the latest release, you can now resize images on demand using the Content Delivery Network (CDN). This means no more storing multiple versions...

Satata Satez | Dec 19, 2024

Simplify Optimizely CMS Configuration with JSON Schema

Optimizely CMS is a powerful and versatile platform for content management, offering extensive configuration options that allow developers to...

Hieu Nguyen | Dec 19, 2024