2015-09-06 81 views
1

不久前我学到了后台线程由于IIS的性质而无法在asp.net中信任,他们可以在任何时候从存在中消失。你可以在asp.net中创建持久的全局变量吗?

问题是,对于我在类中声明为共享字段的全局变量是否也是如此?我不知道该如何测试,因为我还没有看到消失的线索,但认为如果可以发生,其他人也可以发生。

作为更具体的例子,可以说我有这个类:

Public Class DataHolder 
    Public Shared data1 As String 
    Public Shared data2 As String 

    Shared Sub New() 
     Dim fdat = IO.File.ReadAllLines(System.Web.HttpRuntime.AppDomainAppPath & "localcache.txt") 
     data1 = fdat(0) 
     data2 = fdat(1) 
    End Sub 
End Class 

2的事情,我从这个类期望:

  1. 那DATA1和DATA2始终与所提供的值通过localcache.txt(它们不会被代码修改)
  2. data1和data2实际上是从内存中获取的,并且没有欺骗,例如每次使用这些值时都运行构造函数都用于补偿无实数GLO bal memory

这个班级可以达到这些标准吗?

回答

0

IIS主要是基于请求的系统。如果没有活动(即没有进行中的会话),它倾向于关闭一切。

无论何时第一次初始化类,都会调用共享构造函数。因此,只要不修改共享构造函数之外的共享变量,您正在做的工作就会一致地工作。

相关问题