1

我在 asp.net 应用程序中有一个静态数据集,我从外部数据源中提取数据,用于客户端输入(例如从文本框),在数据集中创建具有相同输入名称的表,并将其保存在 My数据集。

我在 iis 上托管了我的应用程序,我的应用程序池身份在我的凭据上运行。

从机器 A 访问应用程序时:我在文本框中输入了“Hello world”(对于此输入,它将获取数据并创建一个具有相同输入名称的表。)

从机器 b 访问应用程序时:如果我尝试提供相同的输入,它会给我一个错误,说名称为“Hello world”的表已经退出。

要点:1)两台机器都在我的凭据上运行。

我的问题

我只是想知道这个数据集是否在不同机器上打开的 Web 应用程序的所有实例之间共享?这是预期的还是我假设错了?

或者这只是因为应用程序池在我的身份上运行而发生的?

有人可以告诉我这类问题,如何处理。

4

1 回答 1

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
于 2013-09-03T16:41:27.737 回答