Exception Details: System.Web.HttpException: Request is not available in this context
Source Error:
Line 7: Private Sub Application_Start(sender As Object, e As EventArgs)
Line 8: ' Caching the tracker image in memory
Line 9: Dim trackerImg As Byte() = File.ReadAllBytes(Context.Request.MapPath(ConfigurationManager.AppSettings("SD_Tut_ImageFileLocation")))
Line 10: Application(ConfigurationManager.AppSettings("SD_Tut_ImageFileKeyName")) = trackerImg
Error is in line 9
This is the Global.asax Code
<%@ Application Language="vb" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="Stardeveloper.Tutorial" %>
<script runat="server">
Private Sub Application_Start(sender As Object, e As EventArgs)
' Caching the tracker image in memory
Dim trackerImg As Byte() = File.ReadAllBytes(Context.Request.MapPath(ConfigurationManager.AppSettings("SD_Tut_ImageFileLocation")))
Application(ConfigurationManager.AppSettings("SD_Tut_ImageFileKeyName")) = trackerImg
' Creating a new request queue collection
Dim queueCapacity As Integer = Convert.ToInt32(ConfigurationManager.AppSettings("SD_Tut_TrackerRequestsToCache"))
Dim trackerReqQueue As New Queue(Of TrackerRequest)(queueCapacity)
Application(ConfigurationManager.AppSettings("SD_Tut_TrackerCachedRequestsKeyName")) = trackerReqQueue
End Sub
Private Sub Application_End(sender As Object, e As EventArgs)
' Storing the queued tracker reqs to database
Dim trackerReqQueue As Queue(Of TrackerRequest) = DirectCast(Application(ConfigurationManager.AppSettings("SD_Tut_TrackerCachedRequestsKeyName")), Queue(Of TrackerRequest))
Tracker.FlushRequestQueueCache(trackerReqQueue)
End Sub
</script>
Requestis not available onApplication_Start.Application_Startis executed when your web application starts and this start is not associated with any page request, as page request is not happened yet at this point.For your need, you can use
Server.MapPath()instead.