ASP.NET MVC输出缓存为多应用程序,因主机名和文化而异
|
我在ASP.NET MVC中有一个多租户应用程序。将被提供的应用程序的实例是主机名的功能(我认为是沿着stackexchange的一行)。 应用程序的每个实例可能具有不同的文化设置(甚至“自动”,以阅读浏览器的语言并尝试使用它),并将相应地进行本地化。 在这种情况下,我想对我的一些行为进行一些输出缓存。所以我的问题是: >如果输出完全取决于主机名(即忽略本地化要求),那么可以实现多租户ASP.NET MVC应用程序的输出缓存? 在这种情况下,我正在考虑所有的网站从单个IIS网站运行(以回答评论)。 谢谢。 解决方法我刚刚知道如何实现这一点。只需使用VaryByHeader属性,设置为“主机”。有很多可能性这样做。 方法1 使用OutputCacheAttribute传递所有需要的配置元素,包括VaryByHeader: public class HomeController : Controller
{
[OutputCache(Duration = 3600,VaryByParam = "none",VaryByHeader = "host")]
public ActionResult Index() { /* ... */ }
}
方法2。 或者您可以将其设置为Web.config上的配置文件: <?xml version="1.0"?>
<configuration>
<!-- ... -->
<system.web>
<!-- ... -->
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<clear/>
<add name="Multitenant"
enabled="true"
duration="3600"
varyByHeader="host"
varyByParam="none"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
</configuration>
然后使用它: public class HomeController : Controller
{
[OutputCache(CacheProfile = "Multitenant")]
public ActionResult Index() { /* ... */ }
}
方法3。 或者您可以将OutputCacheAttribute子类化并使用它: public sealed class MultitenantOutputCacheAttribute : OutputCacheAttribute
{
public MultitenantOutputCacheAttribute()
{
VaryByHeader = "host";
VaryByParam = "none";
Duration = 3600;
}
}
然后使用它: public class HomeController : Controller
{
[MultitenantOutputCache]
public ActionResult Index() { /* ... */ }
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何实现像WCF一样的Asp.net MVC OneWay / FireAndForget调
- asp.net-core – 如何使用.net Core设置离线开发
- asp.net – 在SQL Server中将日期转换为刻度
- asp.net-mvc – BestPractices:在MVC-Controller中使用多个
- asp.net – jqGrid:使用多种方法来过滤数据
- asp.net – 控制FormsAuthentication createPersistentCook
- asp.net – 在未经授权的请求后禁止NTLM对话框
- 在asp.net中将产品信息存储在购物车中的理想方式
- asp.net – 在MS Access 2003中INSERT到用户表中的语法错误
- asp.net-mvc – ASP.Net MVC:如何根据原始的Json数据创建一
- asp.net-mvc-4 – ValidateInput(false)vs Allow
- asp.net – BC30560:’ExtensionAttribute’在名
- iis-7 – ASP.NET MVC4在IIS7集成模式下不处理PO
- asp.net-mvc – 将Ajax Jquery中的enum参数传递给
- IIS ASP.Net网站 – ManagedPipelineHandler错误
- asp.net-mvc – 在使用ModelBinder之前更改文化
- asp.net – 如何使用Eval更改TemplateField中的颜
- asp.net – jqgrid editurl:控制器动作参数
- asp.net – 单独配置文件为web.config的部分
- asp.net-mvc – 在ASP.Net MVC的视图中获取控制器
