相关疑难解决方法(0)

ASP.NET中的请求或服务器的静态类实例是唯一的吗?

在ASP.NET网站上,是每个Web请求唯一的静态类,还是在需要时实例化它们并在GC决定处理它们时进行GC操作?

我问的原因是因为我之前在C#中编写了一些静态类,并且行为与我预期的不同.我希望静态类对每个请求都是唯一的,但似乎并非如此.

如果它们并非每个请求都是唯一的,那么有没有办法让它们成为现实?

更新:
答案给了我正是我所需要的.我已经在使用单例类,但是它使用的是一个静态实例,因此即使用户不同也在请求之间共享,在这种情况下这是一件坏事.使用HttpContext.Current.Items完美地解决了我的问题.对于任何在将来偶然发现这个问题的人来说,这是我的实现,简化和缩短,以便易于理解模式:

using System.Collections;
using System.Web;

public class GloballyAccessibleClass
{
    private GloballyAccessibleClass() { }

    public static GloballyAccessibleClass Instance
    {
        get
        {
            IDictionary items = HttpContext.Current.Items;
            if(!items.Contains("TheInstance"))
            {
                items["TheInstance"] = new GloballyAccessibleClass();
            }
            return items["TheInstance"] as GloballyAccessibleClass;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net static

179
推荐指数
3
解决办法
7万
查看次数

IIS和Asp.Net中的应用程序池是什么?

如何在IIS中实现应用程序池?

  1. 每个应用程序池是否等同于.Net AppDomain?
  2. 或者它相当于.Net流程?
  3. 应用程序池如何与IIS w3wp.exe相关?

.net asp.net iis

23
推荐指数
2
解决办法
1万
查看次数

标签 统计

asp.net ×2

.net ×1

c# ×1

iis ×1

static ×1