gpt4 book ai didi

c# - Asp.net 静态对象行为

转载 作者:行者123 更新时间:2023-12-03 21:57:41 25 4
gpt4 key购买 nike

我有以下类作为 asp.net 应用程序的一部分。

public sealed class SomeClass    
{
private static string appId = Guid.NewGuid().ToString();

public static ReadSomethingFromDb(){}

public static WriteSomethingToDb(){}
}

同一个应用程序池中有多个应用程序实例,并且它们都访问同一个数据库。我希望上述类执行的操作唯一地绑定(bind)到执行它的实例,因此使用 appId。因此,向数据库添加一条记录将包含姓名、地址和 appId。出于讨论目的,这已被简化。

假设我有两个实例在 mysite.a 和 mysite.b 上运行,上面的类将生成两个不同的 guid。

我的问题是 mysite.a 有时会生成多个 guid,这是意外的。

提前谢谢

最佳答案

这将为每个 AppDomain 获得一个新的 Guid;无论何时,您都会拥有新的 AppDomain:

  • 应用程序池回收
  • 不同的机器
  • 您重新启动服务器
  • 您编辑一个文件,例如 web.config
  • IIS 感觉就像产生另一个

简而言之,这并不是一种非常可靠的方法来证明一个应用程序相同(尽管它清楚地表明不同应用程序)。

为什么不直接使用站点路径或 IIS 名称之类的内容作为标识符?

关于c# - Asp.net 静态对象行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com