c# - 旧 ASP.NET:通过 ipv4 为每个页面浏览或每个用户旋转/随机播放/随机化一个变量
问题描述
我们尝试修复旧的 ASP.NET 项目。只获得了 PHP 经验。
而不是下面的,需要从列表中随机选择“键”,以便每个“键”的使用频率大致相同。
string sKey = ConfigurationManager.AppSettings["Key"];
(参考web.config
文件。)
例如,每天有 10000 人使用该网站,浏览量为 20000。现在有 20 个密钥*,每个密钥应用于大约 500 个用户**或大约 1000 次浏览量**。
*(目前在静态文件“keys.txt”中,每行一个键)
**(用户只能通过他们的 IPv4 来区分,但完全随机也可以)
解决方案
您可以通过在键数范围内创建一个随机数并使用随机选择的一个来做到这一点。
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)];
推荐阅读
- html - 使用 *ngFor 生成带有 Angular 材质的列
- javascript - 离子原生文件:File.writeFile 不工作(文件未创建 + 没有回调响应)
- r - 将常用公式编写为 R 中的表达式
- android - 捕获图像后,除非我将其保存为位图形式,否则我无法在 imageview 上显示它。我需要以 Uri 形式保存它
- api - 如何通过对所有输入的条件检查来迭代 JSON 数组输入上的特征文件?
- asp.net-mvc - 为以下数据库行动态创建剃刀视图
- macos - 如何将工具栏(或其项目)与拆分视图控制器的子项的前沿对齐?
- html - 样式化 HRef Float 右不工作 CSS
- django - 从 Excel Web 数据访问 IIS Windows 身份验证网站
- c++ - 使标题看起来像是在不同的文件夹中