如何处理并发连接asp net(c#)

时间:2011-03-21 20:31:26

标签: c# asp.net session cookies session-cookies

我在asp.net中编写了一个简单的webapp。我第一次通过程序一切正常,但如果我再去那里它会使用我上一次会话中的变量。

所以问题是

  1. 无论如何要纠正这个问题吗?

  2. 是否与我如何制作公共变量有关?

  3. 我可以将变量存储为Cookie,然后在页面关闭时将其删除吗?

  4. 这就是我制作公共变量的方式:

    static class vars
    {
        public static List<string> directory_names = new List<string>();
        public static List<string> directory = new List<string>();  
        public static int numvar = 0;
        //There are more but they all are made the same way
    }
    

    欢迎任何想法。

    谢谢, 亚当

2 个答案:

答案 0 :(得分:0)

你应该避免静态,因为这意味着变量对于每个连接的用户都是相同的(加上你可能会遇到线程问题)。

以下是关于此问题的链接:What is better: Static variable V.S. Asp.NET Application Session?

答案 1 :(得分:0)

我们需要在这里解决几件事。

首先,我认为涉及的代码多于您提供的类。我想你需要补充一下,以便我们给你一个准确的答案。

但是,从我从您提供的课程中看到的内容,您已经完成了一件特别的事情,那就是static关键字。

类和/或属性上的static关键字意味着整个application domain中只有一个实例。这意味着对您网站的所有请求都将共享vars类的值,因为只有一个实例。

我建议您关注一些ASP.NET教程和视频,以便在ASP.NET中收集一些基本的知识。从这里开始,他们有很好的材料:http://www.asp.net/get-started

详细了解static关键字:http://msdn.microsoft.com/en-us/library/98f28cdx(v=VS.100).aspx