Exemplo n.º 1
0
 /// <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);
         }
     }
 }
Exemplo n.º 2
0
 /// <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); }
 }
Exemplo n.º 3
0
 /// <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); }
 }