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
错误在第9行
这是Global.asax代码
<%@ 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>
答案 0 :(得分:1)
我们正在处理哪个版本的IIS?如果是7或更高版本,则会发生可能导致此行为的更改。
答案 1 :(得分:0)
Request
。
Application_Start
将被执行,因为此时页面请求尚未发生。
根据您的需要,您可以改为使用Application_Start
。
答案 2 :(得分:0)
检查可能更合适 这在BeginRequest方法中 而不是Application_Start 因为第一个请求可能是 当地但后来你可以打电话给 应用于其他一些领域和 它将不再是本地的。