基于域名的 ASP.net MVC 3 输出缓存

5
我正在开发一个ASP.NET MVC 3网站,服务于多个域名。因此,根据不同的域名,我展示不同的内容。
例如,如果是www.domain1.com,在主页上我会展示3张图片和一些文本。如果是www.domain2.com,在主页上我只展示文本。
我已经实现了一个自定义输出缓存提供程序叫做FileOutputCache,它将缓存的页面保存到文件中,并且我想在这个项目中使用它。但是我的一个大问题是,我没有访问请求,也没有访问主机...
这是其中一个操作:public override object Add(string key, object entry, DateTime utcExpiry);
你可以看到我无法访问主机,而且密钥也不依赖于它...所以如果我部署网站并且第一个用户进入www.domain1.com,它将呈现和缓存带有3张图片和文本的页面...如果另一个用户进入www.domain2.com,它将显示3张图片和文本:(
有人知道如何在我的自定义输出缓存提供程序中区分请求的主机吗?
谢谢! Juan
1个回答

6

我使用 VaryByHeader = Host 解决了这个问题。

由于域名在主机中,而主机是一个头部信息,你可以直接使用内置的 asp.net mvc 功能,它可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接