我有以下類作爲asp.net應用程序的一部分。Asp.net靜態對象行爲
public sealed class SomeClass
{
private static string appId = Guid.NewGuid().ToString();
public static ReadSomethingFromDb(){}
public static WriteSomethingToDb(){}
}
在同一應用程序池中有多個應用程序實例,它們都訪問同一個數據庫。我希望上面的類執行的操作與執行它的實例唯一綁定,因此使用了appId。因此,向數據庫添加記錄會包含名稱,地址和appId。爲了討論的目的,這已經被簡化了。
假設我有兩個運行在mysite.a和mysite.b的實例,上面的類將生成兩個不同的GUID。
我的問題是,mysite.a有時產生多個GUID,這是意想不到的。
預先感謝您
我明白這一點。我99%肯定沒有應用程序池回收,服務器重新啓動,Web配置擺弄。這留下了不同的機器(我不明白你的意思)和IIS(我對此無能爲力)。 至於你的建議,我發佈的類是一個項目的一部分,作爲一個DLL包含在asp.net應用程序中,所以我認爲我無法訪問這兩者中的任何一個。除非我錯了...... – 2010-05-04 11:25:53
「不同的機器」我的意思是 - 一個網絡農場;假裝成一個的多個服務器。但我期望這裏的罪魁禍首是IIS想要一個新的'AppDomain' - 你不能做太多的事情。 – 2010-05-04 11:40:24