我在asp.net应用程序中有一个静态DataSet,我从外部数据源提取数据,为客户端输入(比如从文本框中提取),在数据集中创建一个具有相同输入名称的表,然后保存它在我的数据集中。
我已在iis上托管我的应用程序,其中我的应用程序池标识正在我的凭据上运行。
从机器A访问应用程序时:我在文本框中输入了一个输入“Hello world”(对于此输入,它将获取数据创建一个具有相同输入名称的表。)< / p>
从机器b访问应用程序时:如果我尝试提供相同的输入,则会给出一个错误,指出名为“Hello world”的表已经退出。
点: 1)两台机器都在运行我的凭据。
我的问题
我只是想知道这个数据集是否在不同机器上打开的Web应用程序的所有实例之间共享?这是预期的还是我假设错了?
或者这只是因为应用程序池在我的身份上运行?
可以让一些人了解这类问题,如何处理它。
答案 0 :(得分:0)
问题在于你所说的静态数据集,用外行术语
“公共静态成员在应用程序运行之前可用 无论访问多少用户,都可以访问整个应用程序 对象“
因此,如果您不想向所有用户共享单个对象,请遵循3步规则,创建实例,使用并处置它。请参阅下面的示例
public DatatSet ds = new DatatSet(); // Create a new instance of the any class , here i am using Dataset
ds.Tables.Count(); // Your actual operation. Here your logic will go
ds=null; or ds.Dispose() // dispose or flag it for garbage collection