我有一个 WCF 数据服务,它对 URL 方面的参数的相当复杂的概念敏感。常见的情况是 URL 类似于http://主机:端口/数据服务/Navigation MetadataService.svc/Inventories http://host:port/DataServices/NavigationMetadataService.svc/Inventories('2.1.11.5')?$expand=Components,Items,Items/Properties,Items/Properties/Values(参数的 OData 概念)。
该服务应该返回静态数据。这意味着对于一种独特的参数组合,响应将始终相同(但其大小约为 10-20 兆字节)。
我们想要启用 IIS7 输出缓存,但我们不知道如何执行此操作。 IIS7 管理控制台缺乏调整输出缓存的机会(仅扩展名和“根据查询字符串而变化”参数)。显然,我不想在“扩展名”字段中指定“.svc”,因为我只想为一个 WCF 服务启用缓存。
有一篇关于利用 ASP.NET 输出缓存实现相同目的的文章http://blogs.msdn.com/b/peter_qian/archive/2010/11/17/using-asp-net-output-caching-with-wcf-data-services.aspx http://blogs.msdn.com/b/peter_qian/archive/2010/11/17/using-asp-net-output-caching-with-wcf-data-services.aspx。但实际上这与 IIS7 输出缓存无关。
我们希望使用 IIS7 输出缓存,因为目前我们正在高负载下测试整个实现并选择缓存响应的最佳方式。因此实际上我们只需将 IIS7 输出缓存与 ASP.NET 输出缓存进行比较即可。
我在这里错过了一些非常明显的东西吗?我对 WCF 数据服务很陌生,所以请帮忙
其实有类似的问题如何在 IIS7 中缓存 WCF REST Web 服务? https://stackoverflow.com/questions/2725756/how-do-i-cache-wcf-rest-web-service-in-iis7。但更可能的是如何确定响应在 IIS7 输出缓存方面值得缓存。