ASP.NET';s App_Code文件夹和共享/静态类

本文关键字:文件夹 Code 共享 静态类 App NET ASP | 更新日期: 2023-09-27 17:56:24

如果在App_Code文件夹中定义了"Shared"对象;该对象是否在我的网站的所有用户/访问者之间共享?还是按用户共享?

我不知道这是否合理;但我有一个我之前写的谜题/解算器,我正试图将其融入一个简单的ASP中。网站。它可能写得不好,但我使用了一个共享布尔值来确定是否找到了解决方案。该代码现在作为ASP运行。NET网站,但如果我的网站的两个访问者同时验证他们的谜题,他们会访问同一个布尔值吗?

ASP.NET';s App_Code文件夹和共享/静态类

如果您的变量是静态的,那么所有用户都将访问同一个变量,并且对该变量的任何更改都将影响所有用户(仅在web应用程序的情况下(,逻辑是当您将变量设置为静态时,则在服务器中分配内存位置。当分配该位置时,所有用户共享该位置,因为它是静态的。

静态成员在WebApplication的所有用户之间共享。

你可能需要阅读下面的文章。它包含一些关于应用程序状态变量和静态成员的有用信息:

ASP中的应用程序实例、应用程序事件和应用程序状态。NET

静态变量在所有用户之间/整个应用程序中共享。我已经在我的一个项目中测试了这一点。我100%确信您的布尔变量值将在所有用户之间共享

除非我弄错了,否则IIS可能会将您的应用程序克隆到多个AppDomain中。尽管您的静态变量将在同一AppDomain上的所有用户(或线程(之间共享,但如果它们位于不同的AppDomain上,则不会共享。