作爲後續對前一個問題我也問過"ASP.Net Architecture Specific to Shared/Static functions"共享方法在ASP.NET會話
我仍然在努力理解ASP.NET中使用共享方法的影響。
例如,讓我們拿下面的代碼。
Public Shared Function GetCategoryByID(ByVal CategoryID As Guid) As Category
If Not CategoryID.Equals(Guid.Empty) Then
Dim res As New Category
Using sqlConn As New SqlConnection(My.Settings.ConnectionString)
sqlConn.Open()
Using dr As IDataReader = CategoryDataLayer.GetCategoryByIDQuery(sqlConn, CategoryID)
Return CType(BaseDataLayer.FillObject(res, dr), Category)
End Using
End Using
Else
Return Nothing
End If
End Function
現在我想象客戶機1連接,並與GUID {A20E625F-2333-4742-BFD9-05BE7649222D}運行此方法GetCategoryByID()從他們的會話。
現在讓我們說,例如該過程即將執行以下行。
Using dr As IDataReader = CategoryDataLayer.GetCategoryByIDQuery(sqlConn, CategoryID)
此時客戶機2組的運行的相同的共享的方法,但用GUID {6D806B82-FC7F-4124-AFB9-45E2689BC9F5}。
目前沒有CategoryID變爲{6D806B82-FC7F-4124-AFB9-45E2689BC9F5}並因此干擾客戶端1,因爲現在CategoryID發生了變化,因爲這是共享方法?
有人請澄清?
PS:我很抱歉,本質上是一個重複的帖子,但回想起來,我覺得原帖中的答案不夠清楚(至少對我而言)。也許我還不夠具體...