The free-quota limit on '6000 Redis requests per hour' has been reached. 。。。。。
就是这个报错。解决办法嘛有的直接用v3版,有的修改源码自己编译ServiceStack.Redis,
至于改源代码的办法百度一搜就有,这里不多叙述。
我们做DotNet开发的痛点就是我们的产品别人很容易就能反编译出源码,当然这也是最舒服的一点,所以:
/// <summary>
/// 取消ServiceStack.Rides每小时6000条操作限制
/// </summary>
public static class CancelRedisRestrict
{
public static void Execute()
{
var field = typeof(ServiceStack.LicenseUtils).GetFields(BindingFlags.NonPublic | BindingFlags.Static)
.FirstOrDefault(f => f.Name.Equals("__activatedLicense")); ;
var atype = typeof(ServiceStack.LicenseUtils).Assembly.GetTypes()
.FirstOrDefault(t => t.Name.Equals("__ActivatedLicense"));
var __activatedLicense = field.GetValue(null);
if (__activatedLicense == null)
{
var licenseKey = new ServiceStack.LicenseKey { Type = ServiceStack.LicenseType.FreeIndividual };//注册为个人免费版
var ctr = atype.GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)[0];
__activatedLicense = ctr.Invoke(new object[] { licenseKey });
field.SetValue(null, __activatedLicense);
}
else
{
var lfield = __activatedLicense.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
.FirstOrDefault(f => f.Name.Equals("LicenseKey"));
var licenseKey = lfield.GetValue(__activatedLicense) as ServiceStack.LicenseKey;
if (licenseKey == null)
{
licenseKey = new ServiceStack.LicenseKey { Type = ServiceStack.LicenseType.FreeIndividual };
lfield.SetValue(__activatedLicense, licenseKey);
}
licenseKey.Type = ServiceStack.LicenseType.FreeIndividual;
}
}
}
在你程序入口处(Setup()或者Main()里)调用 CancelRedisRestrict.Execute() 。
————————————————
原文链接:https://blog.youkuaiyun.com/chunTF/article/details/124772684