Asp.net(VB),在线程里使用 HttpContext.Current 为什么返回 Nothing 呢?
QB97 2004-03-17 01:52:03 Asp.net(VB),在线程里使用 HttpContext.Current 为什么返回 Nothing 呢?
---------------------------------------
就是在ClassA里开始一个线程ClassB,而ClassB里调用的ClassC中使用
HttpContext.Current
但 HttpContext.Current 却返回的是 Nothing ???
---------------------------------------
麻烦各位指点小弟一下,都折腾我一周多了还是弄不明白……5555~~~~
Asp.net(VB),在线程里使用 HttpContext.Current 为什么返回 Nothing 呢?
---------------------------------------
就是在ClassA里开始一个线程ClassB,而ClassB里调用的ClassC中使用
HttpContext.Current
但 HttpContext.Current 却返回的是 Nothing ???
附:
大概就是下面这种环境:
---------------------------------------
1 Public Class ClassA
2 ……
3 Public Sub Send()
4 Dim cClassB As New cClassB
5 Dim ThreadClassB As New Thread(AddressOf cClassB.Send)
6 ThreadClassB.Start()
7 ……
8 End Sub
9 End Class
---------------------------------------
10 Public Class ClassB
11 ……
12 Public Sub Send()
13 Dim cClassC As New ClassC
14 Dim myModuleSettings As ModuleSettings = cClassC.GetSettings
15 ……
16 End Sub
17 End Class
--------------------------------------
18 Public Class ClassC
19 ……
20 Public Shared Function GetSettings() As ModuleSettings
21 Dim context As HttpContext = HttpContext.Current
22 Dim data As ModuleSettings = CType(context.Cache("Settings"),
ModuleSettings)
23 ……
24 End Function
25 End Class
---------------------------------------
26 Public Class ModuleSettings
27 ……
28 End Class
---------------------------------------
出现问题:
---------------------------------------
在
----------
22 Dim data As ModuleSettings = CType(context.Cache("Settings"),
ModuleSettings)
----------
产生 System.NullReferenceException 异常。
单步调试发现:
----------
21 Dim context As HttpContext = HttpContext.Current
----------
中 HttpContext.Current 返回 Nothing ???
---------------------------------------