草庐IT

cache一致性

全部标签

c# - 安排每天在特定时间刷新 HttpContext.Cache 的任务

我有一个正在运行的MVC3c#网站,它从网络服务中提取记录。随着它从web服务获取的数据集变得越来越大,我正在寻找一种方法来创建它的缓存,而不是在没有当前缓存的情况下由第一个访问该站点的用户触发,而是按每日计划(如cron作业、计划任务等)。我应该怎么做?我是否需要某种触发器库,如Quartz.net?(我宁愿使用更简单的解决方案)现在我的Controller中有:privateListGetSummaries(){//getsummariesfromcacheifavailableListsummaries=(List)HttpContext.Cache["SummariesCach

c# - HttpContent header 不一致的枚举

我正在将HttpContent转换为以下dto:publicclassContentDto{publicstringContentType{get;set;}publicstringHeaders{get;set;}publicobjectData{get;set;}publicContentDto(HttpContentcontent){Headers=content.Headers.Flatten();//restofthesetup}}并且正在对它运行一些单元测试:[Fact]publicvoidCanBuild(){varcontent=newStringContent("so

c# - MVC 5 : Custom AuthorizeAttribute and Caching

我试图通过从中派生并覆盖其某些方法来找到实现自定义System.Web.Mvc.AuthorizeAttribute的解决方案。我正在尝试的每一种方法,我都面临着MVC5的默认授权机制中的某些问题,这使我无法正确扩展它。我已经在SO和许多专用资源上对该领域进行了大量研究,但是我无法像我目前的场景那样为这种场景找到可靠的解决方案。第一个限制:我的授权逻辑需要额外的数据,例如Controller和方法名称以及应用于它们的属性而不是HttpContextBase能够提供的有限部分数据。例子:publicoverridevoidOnAuthorization(AuthorizationCont

c# - SQL Server 管理对象 (SMO) 的默认约束不一致

我有一个程序可以使用SQLServer管理对象(SMO)为MicrosoftSQLServer数据库生成DDL脚本。但是,根据服务器和数据库,我收到表的默认约束输出不一致。有时它们与CREATETABLE语句内联,有时它们是独立的ALTERTABLE语句。我意识到两者都是有效且正确的SQL语句,但如果没有一致性,它会阻止多个数据库的输出之间的自动比较,并阻止将输出添加到源代码管理以跟踪数据库模式的更改。如何确保默认约束的脚本输出的一致性?示例程序代码应该简单明了。打开服务器和数据库,然后为每个数据库对象生成单独的脚本文件,再加上一个包含整个数据库脚本的文件。我省略了很多似乎已经生成一致

c# - .NET : Output caching for WebMethod?

我可以缓存WebMethod输出的返回值吗?例如。如果在最后X秒或分钟内调用了WebMethod,则实际上不要再次运行该方法——只需使用与上次提供的结果相同的结果。或者我应该在类/WebMethod内部滚动自己的缓存吗? 最佳答案 您可以使用CacheDurationWebMethod属性的参数,用于指定将请求的输出缓存给定的时间量。[WebMethod(CacheDuration=60)]以上代码将使您的网络方法将其结果缓存60秒。 关于c#-.NET:Outputcachingfor

c# - 对不一致的行结尾说"is"?

我正在Unity中构建游戏,我使用VisualStudio2013作为我的默认IDE。每当我创建一个文件时,它都会询问我是否要规范化行尾,因为行尾不一致(详情请参见:WhatdoesVisualStudiomeanbynormalizeinconsistentlineendings?)。我应该说是还是否?我最好的猜测是,如果我说"is",它会清除Windows不关心的Mac和Linux内容,因此它只会在Windows上运行。我对选择“否”的最佳猜测是,它会让代码在所有三个平台上运行,不会影响其他两个平台。这是正确的吗? 最佳答案 在

c# - System.Runtime.Caching 中是否存在某种 CacheDependency?

我听说.NET4有一个新的缓存API。好的,旧的System.Web.Caching.Cache(顺便说一句,.NET4中仍然存在)能够设置所谓的CacheDependency对象以确定缓存项是否过期。还可以通过从CacheDependency派生自定义子类来指定用于确定缓存项是否仍然可用的自定义逻辑。我很好奇,有没有办法在新API中提供这样的逻辑? 最佳答案 我还没有真正使用过它,但是从ChangeMonitorClass派生的类似乎服务于类似的目的。 关于c#-System.Runt

c# - 一致地生成对象的哈希值

我正在尝试获取对象的哈希值(md5或sha)。我已经实现了这个:http://alexmg.com/post/2009/04/16/Compute-any-hash-for-any-object-in-C.aspx我正在使用nHibernate从数据库中检索我的POCO。在其上运行GetHash时,每次从数据库中选择和水化它都是不同的。我想这是预料之中的,因为底层代理会发生变化。无论如何,有没有办法每次都一致地获取对象所有属性的哈希值?我考虑过在this.GetType().GetProperties上使用StringBuilder的想法......并在其上创建哈希,但这似乎效率低下?

c# - 在 TabControl 内恢复 SplitterDistance 不一致

我正在编写一个WinForms应用程序,我的TabControl中的一个选项卡有一个SplitContainer。我在用户的应用程序设置中保存了SplitterDistance,但恢复不一致。如果带有拆分器的标签页可见,则恢复正常并且拆分器距离与我离开时一样。如果选择了其他选项卡,则分离器距离错误。 最佳答案 有一个更简单的解决方案。如果在SplitContainer.FixedPanel属性中将Panel设置为固定面板,它的所有行为都符合预期。 关于c#-在TabControl内恢复S

c# - HttpContext.Current.Cache 是线程安全的吗?

请检查下面的代码:objDDLTable=HttpContext.Current.Cache["TestSet"]asHashtable;if(objDDLTable==null){objDDLTable=newHashtable();arrDDLItems=GetDropDownList("testDropDown");objDDLTable.Add("testDropDown",arrDDLItems);HttpContext.Current.Cache["TestSet"]=objDDLTable;}elseif(objDDLTable!=null&&!objDDLTable.C