SilverLight
SilverLight

Reputation: 20468

Request is not available in this context -> In Global.asax -> what is replace

why the below line has error in global.asax :

string RelativeFilePath = "~/" + (AbsoluteFilePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty)).Replace("\\", "/");  

Error :

Request is not available in this context

what is the replacement?

thanks in advance

Upvotes: 3

Views: 6462

Answers (2)

Aaron Daniels
Aaron Daniels

Reputation: 9664

In IIS7 or greater, the Integrated pipeline was introduced, and some rules changed. You cannot access the current HttpContext in Application_Start. Here's more information.

To quote, here's your options:

So, what does this mean to you?

Basically, if you happen to be accessing the request context in Application_Start, you have two choices:

Change your application code to not use the request context (recommended). Move the application to Classic mode (NOT recommended).

Since you're just getting the application's physical path, I'd stick with Integrated Mode and just change your code.

Upvotes: 0

Darin Dimitrov
Darin Dimitrov

Reputation: 1038730

If you are hosting your application in IIS7 integrated pipeline HttpContext objects are not available in Application_Start. For your scenario you could do this instead:

string relativeFilePath = "~/" + AbsoluteFilePath
    .Replace(HostingEnvironment.ApplicationPhysicalPath, String.Empty)
    .Replace("\\", "/"); 

Upvotes: 2

Related Questions