2015-09-06 115 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主要是基於請求的系統。如果沒有活動(即沒有進行中的會話),它傾向於關閉一切。

無論何時第一次初始化類,都會調用共享構造函數。因此,只要不修改共享構造函數之外的共享變量,您正在做的工作就會一致地工作。

相關問題