One of the many features introduced in IIS7 is the concept of the "integrated" application pipeline. An application pool may now run in "classic" or integrated mode. Integrated is preferred for performance, security and convenience reasons.

One hitch a SaaSGrid developer may encounter when moving to SaaSGrid 1.9+ -- or anytime they migrate a legacy ASP.NET app from classic to integrated pipeline mode -- is the "Request is not available in this context" error message. This issue really is just what it sounds like -- it is generally caused by attempting to access HttpContext.Current.Request someplace it is not, or is no longer, available -- often in the global.asax Application_Start method.

With the new integrated pipeline it is possible to have non-request driven activation, such as initialization by the Windows Activation Service. In such cases, it's logically impossible to provide HttpContext.Current.Request during app start -- because there is, of course, no guaranteed HTTP request. This is what causes the exception seen in the interface.

There are two options here: 1) workaround by setting the application pool in question to Classic. This is at best a workable band-aid. The preferred method is to , 2) refactor any request-context operations to be truly request-driven, and enforce any onstart behaviors with lazy loading and a singleton pattern.