Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使静态变量在iis7的发布模式下工作?_C#_Asp.net Mvc 3_Asp.net Mvc 4_Razor - Fatal编程技术网

C# 如何使静态变量在iis7的发布模式下工作?

C# 如何使静态变量在iis7的发布模式下工作?,c#,asp.net-mvc-3,asp.net-mvc-4,razor,C#,Asp.net Mvc 3,Asp.net Mvc 4,Razor,在我的Asp.NETMVC4.5项目中,我创建了字符串的静态列表。在此列表中添加字符串变量此列表在运行Visual studio但使发布不起作用时在调试模式下工作 这是我的密码 从其他浏览器发布并打开此视图时,我看到的不是从打开此视图的其他浏览器插入的数据 ex>在chrom中打开时,将str变量设置为1,然后设置为2 我将看到在色度1然后2 当获取url并在其他浏览器(如firefox)中重新打开时,无法看到1、2 这就是我需要看到的 public static class GetOnLine

在我的Asp.NETMVC4.5项目中,我创建了字符串的静态列表。在此列表中添加字符串变量此列表在运行Visual studio但使发布不起作用时在调试模式下工作 这是我的密码


从其他浏览器发布并打开此视图时,我看到的不是从打开此视图的其他浏览器插入的数据

ex>在chrom中打开时,将str变量设置为1,然后设置为2 我将看到在色度1然后2

当获取url并在其他浏览器(如firefox)中重新打开时,无法看到1、2 这就是我需要看到的

public static class GetOnLineUser
    {
        public static List<string> NewList;
        public static string StaticList(string str)
        {
            if(NewList==null)
                NewList = new List<string>();
            var sp = new StringBuilder();
            if (!NewList.Contains(str) && !string.IsNullOrEmpty(str))
                NewList.Add(str);
            if (NewList != null && NewList.Count > 0)
            {
                foreach (var st in NewList)
                {
                    sp.Append(st);
                    sp.Append("<br/>");
                }
            }
            return sp.ToString();
        }
    }


public class TestStController : Controller
    {
        //
        // GET: /TestSt/
        public string Index(string str)
        {
            return GetOnLineUser.StaticList(str);
        }
    }

出现此问题的原因是服务器上处于发布模式的此网站的iis应用程序池中的配置。 若要修复此问题,请打开Iis并为此站点选择应用程序池。然后打开此应用程序池的高级设置。然后从显示面板中选择[Process Model],并将[User Profile]=False
此配置使任何静态变量对我有效

,但当“使发布不起作用”时,不会告诉我们您看到了什么。首先,您的代码肯定不是线程安全的,而且不清楚您希望它实现什么。。。但是你在观察什么呢?这里的实际问题是什么?我在不同浏览器中发布和打开此视图时看到的不是从打开此视图的其他浏览器中插入的数据ex>在chrom中打开并将str变量设置为1然后设置为2我将在chrom中看到1然后在获取url并在不同浏览器中重新打开时看到2,如firefox看不到1,这是我需要看到的,那么你在Firefox中看到了什么?顺便说一下,你可能想考虑使用String。再想想线程安全性…你主要对线程安全性有什么看法。我需要的所有东西,比如存储变量作为列表,都会在上面添加值,并在不同的浏览器中为所有登录用户获取所有内容。您正在编写web应用程序。它是自动多线程的。从您发布的问题或答案中确实不清楚实际问题是什么,或者修复实际完成了什么。这个答案也很难读懂,因为你对每个单词都使用大写。