使用asp.net权限管理系统(FrameWork) 缓存Sys_moduleTreeCache的异常
1,已添加了相同的键异常;
2,索引超出了数组界限。 在 System.Collections.Generic.Dictionary`2.Resize
自己虽然对异常也有自己的理解,但是毕竟这个框架比较高大上,而且已经在很多项目中使用,自己不敢盲目修复。所以求助。
以下贴出主要的代码:
1,FrameWorkCache类
========================================
using System;
using System.Collections.Generic;
using System.Text;
namespace MS.FrameWork
{
/// <summary>
/// MS.FrameWork缓存类
/// </summary>
public class FrameWorkCache
{
private static IFrameWorkCache _FrameWorkCache = null;
static FrameWorkCache()
{
_FrameWorkCache = (IFrameWorkCache)Activator.CreateInstance(Commom.GetCachenamespace, Commom.GetCacheclassName).Unwrap();
}
/// <summary>
/// 在线用户接口
/// </summary>
/// <returns>IFrameWorkOnline实现类</returns>
public static IFrameWorkCache Instance()
{
return _FrameWorkCache;
}
}
}
Commom.GetCachenamespace, Commom.GetCacheclassName读的是Web.config中的配置
<!--缓存类配置(命名空间) FrameWorkCache-->
<add key="Cachenamespace" value="MS.FrameWork"/>
<!--缓存类配置(类名) FrameWorkCache-->
<add key="CacheclassName" value="MS.FrameWork.HttpWebCache"/>
-------------------------------------------------------------------------------------------
2,类HttpWebCache,IFrameWorkCache是个接口,内容和HttpWebCache内容差不多。
=========================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.Caching;
namespace MS.FrameWork
{
/// <summary>
/// Asp.Net Web缓存
/// </summary>
public class HttpWebCache:IFrameWorkCache
{
/// <summary>
/// WebCache
/// </summary>
private Cache _Cache = HttpRuntime.Cache;
/// <summary>
/// 插入值
/// </summary>
/// <param name="key">key</param>
/// <param name="o">值</param>
public void Insert(string key, object o)
{
_Cache.Insert(key, o);
}
/// <summary>
/// 移除值
/// </summary>
/// <param name="key">key</param>
public void Remove(string key)
{
_Cache.Remove(key);
}
/// <summary>
/// 获得值
/// </summary>
/// <param name="key">键值</param>
/// <returns>返回值</returns>
public object this[string key]
{
get {
return _Cache[key];
}
}
/// <summary>
/// 获得使用缓存总数
/// </summary>
public int Count
{
get {
return _Cache.Count;
}
}
/// <summary>
/// 获得剩余缓存大小
/// </summary>
public string Remains
{
get {
return string.Format("{0}M",_Cache.EffectivePrivateBytesLimit / 1024 / 1024);
}
}
/// <summary>
/// 根据key获得值
/// </summary>
/// <param name="key"></param>
/// <param name="o"></param>
/// <returns></returns>
public bool TryGetValue(string key, out object o)
{
o=_Cache[key];
return ContainsKey(key);
}
/// <summary>
/// 检测是否存在当前key
/// </summary>
/// <param name="key">key</param>
/// <returns>存在/不存在</returns>
public bool ContainsKey(string key)
{
if (_Cache[key] == null)
{
return false;
}
else
{
return true;
}
}
}
}
------------------------------------------------------------------------------------------------
3,类 sys_Module_Cache中有个方法,被调用时,过一段时间就会出异常
=============================================================
/// <summary>
/// 设置模块缓存
/// </summary>
/// <param name="m">设置模块</param>
static void setModuleCache(sys_ModuleTable m)
{
if (!Sys_moduleCache.ContainsKey(m.ModuleID))
{
Sys_moduleCache.Add(m.ModuleID, m); //初始化模块缓存
}
if (Sys_moduleTreeCache.ContainsKey(m.ModuleID))
{
Sys_moduleTreeCache.Remove(m.ModuleID);
}
Sys_moduleTreeCache.Add(m.ModuleID, new List<sys_ModuleTable>()); //初始化树状模块缓存
}
if (Sys_moduleTreeCache.ContainsKey(m.ModuleID))
{
Sys_moduleTreeCache.Remove(m.ModuleID);
}
Sys_moduleTreeCache.Add(m.ModuleID, new List<sys_ModuleTable>()); //初始化树状模块缓存
异常就是这段代码报的,不知道该怎么修复,这个框架是不是有点问题?HttpRuntime.Cache这个类,可以反射使用吗?
相关推荐
ASP.NET+LayUI权限管理系统源码实战解析
权限管理是企业级Web系统的核心安全能力,涉及菜单控制、按钮显隐、API访问拦截与行级数据过滤等多层机制。其本质是将RBAC模型落地为可审计、可扩展、防绕过的工程实现。在.NET Framework技术栈受限于老旧政企环境的现实下,LayUI凭借零构建依赖和轻量特性成为合规前端首选。本文聚焦ASP.NET Web Forms/MVC与LayUI深度集成的权限方案,详解服务端特性过滤、前端动态菜单渲染、按钮级权限绑定及数据权限SQL安全拼接等关键技术点,适用于政务、医疗、教育类中台系统的快速安全交付。
技术转移机构如何基于数据提升项目撮合精准度?.docx
技术转移机构如何基于数据提升项目撮合精准度?
超扭滑模与快速终端滑模的永磁同步电机无感控制:理论、离散化实现与仿真研究(Simulink仿真实现)
内容概要:本文系统研究了超扭滑模控制(STSMC)与快速终端滑模控制(FTSMC)在永磁同步电机(PMSM)无感控制中的应用,重点涵盖其理论基础、离散化实现方法及Simulink仿真验证。文章深入阐述了两种高阶滑模控制策略的设计原理,利用磁链无感观测技术实现转子位置与速度的精确估计,从而省去物理传感器,有效提升了系统的可靠性与鲁棒性。同时,提供了完整的Simulink仿真模型构建方案,包括控制器设计、关键参数整定及动态响应性能分析,充分验证了所提出的方法在零速与低速工况下的卓越控制性能和有效性。; 适合人群:具备电机控制、现代控制理论基础知识及熟练掌握MATLAB/Simulink仿真技能的研究生、科研人员与工程技术人员。; 使用场景及目标:①深入理解高阶滑模控制在电机驱动系统中的设计思想与具体实现;②掌握基于滑模观测器的无感控制核心技术;③开展永磁同步电机高性能控制算法的理论研究、仿真验证与工程化探索。; 阅读建议:建议将文中详尽的理论推导与Simulink仿真模型相结合进行学习,重点关注滑模面的构建、抖振抑制策略的实施以及离散化处理的细节,有条件的研究者可进一步将算法移植到DSP等硬件平台进行实验验证,以深化对理论的理解并检验其实际应用效果。
多源动态最优潮流的分布鲁棒优化方法(IEEE118节点)(Matlab代码实现)
内容概要:本文系统阐述了基于Matlab的多源动态最优潮流分布鲁棒优化方法,聚焦于IEEE118节点电力系统,旨在应对高比例可再生能源接入背景下源荷双重不确定性所带来的调度挑战。该方法深度融合分布鲁棒优化理论,通过构建能够抵御最坏情况概率分布的决策模型,有效提升了电力系统在复杂不确定性环境下的运行安全性、经济性与可靠性。研究不仅提供了完整的Matlab代码实现,便于结果复现与算法验证,还特别关注了含风电等新能源的现代电网低碳调度问题,为解决实际工程中的优化调度难题提供了强有力的理论支撑和技术工具。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、科研人员及从事智能电网优化运行、能源系统规划等相关领域的工程技术人员。; 使用场景及目标:①研究含高比例可再生能源接入的电力系统动态最优潮流问题;②掌握分布鲁棒优化在电力系统经济调度、低碳调度中的建模思想与求解方法;③利用IEEE118标准测试系统进行算法有效性验证与性能对比分析;④基于所提供的Matlab代码进行二次开发,探索新型不确定性优化理论在电力系统中的创新应用。; 阅读建议:建议读者结合电力系统最优潮流、不确定性优化理论(特别是分布鲁棒优化)的背景知识进行学习,重点关注模型的构建逻辑、目标函数与约束条件的设计原理,以及Matlab代码的具体实现细节。在学习过程中,应动手调试代码,尝试修改系统参数(如新能源出力波动范围、负荷水平等),以观察不同场景下优化结果的变化,从而深刻理解该方法的适应性、优势及其潜在的局限性。
车间调度基于GA、PSO、SA、ACO、TS优化算法的车间调度比较研究(Matlab代码实现)
内容概要:本文系统性地比较了遗传算法(GA)、粒子群优化(PSO)、模拟退火(SA)、蚁群优化(ACO)和禁忌搜索(TS)五种智能优化算法在车间调度问题中的性能表现,并提供了基于Matlab的完整代码实现。研究聚焦于调度优化的核心目标——最小化完工时间(makespan),通过标准测试案例对各算法的收敛速度、求解精度和稳定性进行了深入对比分析,旨在为实际生产调度中算法的选择与改进提供科学依据。文中不仅详述了每种算法的设计思路与关键参数设置,还展示了其实现逻辑,便于读者理解、复现与拓展。; 适合人群:从事智能制造、工业工程、运筹优化等相关领域的研究人员,以及具备Matlab编程基础、希望将智能优化算法应用于实际调度问题的研究生和工程师。; 使用场景及目标:① 掌握主流智能优化算法在解决NP-hard车间调度问题上的具体应用与差异;② 学习如何利用Matlab实现并对比不同优化算法的性能;③ 为解决生产制造、物流配送等领域中的资源调度难题提供算法选型和技术参考。; 阅读建议:建议读者在阅读时重点关注各算法的Matlab实现代码和实验结果对比部分,动手运行代码以直观感受不同算法的寻优过程和效果差异。同时,可结合具体调度约束条件,尝试调整算法参数或融合多种算法思想,以深化对优化机理的理解。


