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

Jua*_*uan 5 outputcache asp.net-mvc-3

我正在开发一个服务于多个域的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图像和文字:(

有谁知道如何在我的自定义输出缓存提供程序中区分请求的主机?

提前致谢!胡安

Jua*_*uan 6

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

由于域位于主机(即标头)中,因此您可以使用内置的asp.net mvc功能,并且工作正常.