asp.net – 多租户应用程序的输出缓存,因主机名和文化而异
发布时间:2020-12-16 00:21:18 所属栏目:asp.Net 来源:网络整理
导读:我在ASP.NET MVC中有一个多租户应用程序。将要提供的应用程序实例仅仅是主机名的功能(我认为这与stackexchange一致)。 应用程序的每个实例可能具有不同的文化设置(甚至“自动”,以阅读浏览器的语言并尝试使用它),并将相应地进行本地化。 在这种情况下,我
我在ASP.NET MVC中有一个多租户应用程序。将要提供的应用程序实例仅仅是主机名的功能(我认为这与stackexchange一致)。
应用程序的每个实例可能具有不同的文化设置(甚至“自动”,以阅读浏览器的语言并尝试使用它),并将相应地进行本地化。 在这种情况下,我想对我的一些操作进行一些输出缓存。所以,我的问题是: >如果输出完全取决于主机名(即忽略本地化要求),那么实现多租户ASP.NET MVC应用程序的输出缓存有哪些可能性? 在这种情况下,我考虑所有站点都从一个IIS网站运行。 解决方法
我刚刚想出如何实现这一目标。
只需使用VaryByHeader属性,设置为“host”即可。这样做有很多种可能性。 方法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() { /* ... */ } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何从Controller设置@ Html.ActionLink的动态标
- asp.net – 在Windows 2008 R2 SP1上,asmx的JQuery失败
- asp.net-mvc – 动态类型的ViewPage
- asp.net-mvc – Windows Azure上的ASP.NET MVC是生产环境的
- asp.net-mvc-3 – 如何通过ajax上传文件
- asp.net-mvc – IIS不允许MVC应用程序控制Azure上的错误消息
- asp.net – 在实现URL路由时阻止对.ASPX页面的正常请求
- asp.net – CLSID为{00024500-0000-0000-C000-000000000046
- 如何使用asp.net在负载均衡机上获取访问者IP
- asp.net-mvc – 在我正在运行的Visual Studio 2013中的另一
推荐文章
站长推荐
- asp.net-mvc – asp.net mvc 3中DataAnnotations
- asp.net-mvc – 使用下拉列表过滤MVC中的结果
- 用JWT来保护我们的ASP.NET Core Web API
- asp.net-mvc – MVC范例中的模型,域,存储库和服务
- asp.net-mvc – 如果在Razor MVC 3中浏览器未继承
- asp.net-mvc – 在@ Html.ActionLink中放置@ Htm
- asp-classic – ASP页面中的msxml3.dll错误“800
- asp.net-mvc – MVC:传入字典的模型项是X类型,但
- .Net Core微服务入门全纪录(一)——项目搭建
- asp.net-mvc-3 – 似乎无法有条件地使用Razor的f
热点阅读