C# 旧ASP.NET:按ipv4为每个页面视图或每个用户旋转/洗牌/随机化变量

C# 旧ASP.NET:按ipv4为每个页面视图或每个用户旋转/洗牌/随机化变量,c#,asp.net,C#,Asp.net,我们尝试热修复一个旧的ASP.NET项目。只有PHP经验 需要从列表中随机选择“键”,以使每个“键”的使用频率大致相同 string sKey = ConfigurationManager.AppSettings["Key"]; (请参阅web.config文件。) 例如,每天有10000人使用该网站,20000次页面浏览。 现在有20个键*,每个键应该用于大约500个用户** 或大约1000次浏览** *(当前位于静态文件“keys.txt”中,每行一个键) **(用户只能通过他们的IPV4

我们尝试热修复一个旧的ASP.NET项目。只有PHP经验

需要从列表中随机选择“键”,以使每个“键”的使用频率大致相同

string sKey = ConfigurationManager.AppSettings["Key"];
(请参阅
web.config
文件。)

例如,每天有10000人使用该网站,20000次页面浏览。 现在有20个键*,每个键应该用于大约500个用户** 或大约1000次浏览**

*(当前位于静态文件“keys.txt”中,每行一个键)


**(用户只能通过他们的IPV4来区分,但total random也可以)

您可以通过在密钥数的范围内创建一个随机数并使用随机选择的一个来做到这一点

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Web.UI.WebControls;
using System.Linq;

//list to hold the keys
List<string> keys = new List<string>();

//dummy data
keys = Enumerable.Range(1, 20).Select(i => "Key_" + i).ToList();

//or read the file from disk
string path = Server.MapPath("keys.txt");
if (File.Exists(path))
{
    keys = File.ReadAllLines(path).ToList();
}

//create a random number and select the key
Random rnd = new Random();
string key = keys[rnd.Next(0, keys.Count)];
使用系统;
使用System.Collections.Generic;
使用系统数据;
使用System.IO;
使用System.Web.UI.WebControl;
使用System.Linq;
//列出要保存的键
列表键=新列表();
//虚拟数据
keys=Enumerable.Range(1,20)。选择(i=>“Key_”+i.ToList();
//或者从磁盘读取文件
字符串路径=Server.MapPath(“keys.txt”);
if(File.Exists(path))
{
keys=File.ReadAllLines(path.ToList();
}
//创建一个随机数并选择关键点
随机rnd=新随机();
字符串key=keys[rnd.Next(0,keys.Count)];

也许您需要
HttpContext.Current.Server
。并
使用System.Linq
使用所需的添加了所有的
。默认情况下,该引用应位于Visual Studio中。但如果没有,请添加一个引用。谢谢,“解决方案资源管理器”中的0个项目,因此将web.config编辑回CS0117:“System.Array”不包含“ToList”的定义(同样,但我们不需要伪数据CS0117:“System.Collections.Generic.IEnumerable”不包含“Select”的定义—)