我是新來的asp.net,我試圖解決一個問題。ASP.NET DLL實例衝突
我創建了一個引用vb.net類的簡單aspx頁面(asp網站)。 我正在使用會話上下文對象處理一個類實例(不知道是否有更好的方法)。 該類有一個設置字符串值和返回它的函數的子集。
我編譯並運行網站項目,然後從一個aspx頁面設置值「1」,並從另一個頁面設置值「2」(我通過從第一個頁面複製粘貼URL打開第二個標籤頁或瀏覽器頁面),然後檢索值,兩個頁面將顯示「2」。
當exe實例正在運行時,vb.net表單應用程序(.exe)中的相同類運行良好,第一個返回值「1」,第二個返回值「2」。這是我希望它在我的網站項目,不同的頁面不同的dll實例中工作的方式。
Class:
Public Class Class1
Private sExten As String
Public Sub setExten(value As String)
sExten = value
End Sub
Public Function getExten() As String
Return sExten
End Function
End Class
aspx:
Partial Class _Default
Inherits System.Web.UI.Page
'trying to ensure one instance is running
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Session.Add("ClassLibrary1", New ClassLibrary1.Class1)
End If
End Sub
'txtSetValue.text contains value "1" or "2"
Protected Sub btnSet_Click(sender As Object, e As EventArgs) Handles btnSet.Click
CType(Session.Item("ClassLibrary1"), ClassLibrary1.Class1).setExten(txtSetValue.text)
End Sub
'the txtShowValue shows "1" in the first and "2" in the second page
Protected Sub BtnGet_Click(sender As Object, e As EventArgs) Handles BtnGet.Click
txtShowValue.Text = CType(Session.Item("ClassLibrary1"), ClassLibrary1.Class1).getExten()
End Sub
End Class
您正在覆蓋Tab2中的會話值2,因此預期會返回2而不是1.如果您想讓它們分開,請查看此[SO解決方案](http://stackoverflow.com/a/) 2844472/125551) – 2013-03-14 21:59:43