/// <summary> /// 公用错误处理函数 /// </summary> /// <param name="error">错误信息</param> public void Error(string error) { if (!string.IsNullOrEmpty(error)) { bool isLog = false; if (error.Length <= config.web.Default.PubErrorMaxSize) { hashString errorHash = error; Monitor.Enter(errorQueueLock); try { if (errorQueue.Set(errorHash, error) == null) { isLog = true; if (errorQueue.Count > config.web.Default.PubErrorMaxCacheCount) { errorQueue.UnsafePopValue(); } } } finally { Monitor.Exit(errorQueueLock); } } else { isLog = true; } if (isLog) { fastCSharp.log.Default.Add(error, new System.Diagnostics.StackFrame(), false); } } }
/// <summary> /// 设置Session缓存 /// </summary> /// <param name="sessionId"></param> /// <param name="value"></param> private void set(ref sessionId sessionId, valueType value) { Monitor.Enter(queueLock); try { queue.Set(sessionId, value); if (queue.Count > queueCount) { queue.UnsafePopValue(); } } finally { Monitor.Exit(queueLock); } }
/// <summary> /// 设置域名转换IP地址 /// </summary> /// <param name="key">域名</param> /// <param name="ipAddress">IP地址</param> private static void setDomainIp(hashBytes key, ref ipAddress ipAddress) { Monitor.Enter(domainIpLock); try { domainIps.Set(key, ipAddress); if (domainIps.Count == config.http.Default.IpAddressCacheCount) { domainIps.UnsafePopValue(); } } finally { Monitor.Exit(domainIpLock); } }