缓存是什么(以及在哪里).在Dynamics CRM 2015 Portal演练中提到的



我们正在研究Microsoft Dynamics CRM 2015的开发人员扩展包。在这篇文章中,他们向你展示了如何添加一个CRM插件,当CRM中的实体更新时,它将使你网站的缓存数据无效。

文章说:

缓存无效的URL将是http(s)://your-website-domain/cache .axd.

我的解决方案中没有Cache.axd,也没有任何配置行将此处理程序映射到我的解决方案引用的Microsoft DLL中的DLL或其他组件。对http://mysolution/Cache.axd的HTTP请求返回HTTP 404.0 Not Found。

Cache.axd在哪里?它是从哪里来的?它是如何工作的?我在Dynamics CRM SDK或文档中找不到任何参考。

找到了。在Microsoft.Xrm.Portal.Web中。处理程序,并且需要通过web进行配置。配置文件如下:

<system.webServer>
  <handlers>
    <add name="XrmCacheInvalidationHandler" path="cache.axd" verb="*" type="Microsoft.Xrm.Portal.Web.Handlers.CacheInvalidationHandler, Microsoft.Xrm.Portal" resourceType="Unspecified" />
  </handlers>
</system.webServer>

据我所知,根本没有关于这个组件或它如何工作的文档。显然,有一个CRM管理解决方案支持这个组件,它将"很快"在Dynamics CRM市场中可用-但目前还没有迹象-所以我打开了Reflector中的DLL来看看它是做什么的。

要清空整个缓存,使用:

GET /Cache.axd?Message=InvalidateAll

要清除特定实体,请使用

GET /Cache.axd?EntityName=contact&Message=Update&Id={00000000-1111-2222-3333-ABCD12341234}

支持的Message值似乎是PublishUpdateCreateInvalidateAll,我猜映射到注册自定义CRM插件时可用的消息。

Cache.axd URL需要映射到包含在CRM SDK中的Microsoft.Xrm.Portal.Web.Handlers.CacheInvalidationHandler类。

这个想法是自定义门户缓存数据以提高性能,然后当CRM中的某些内容发生变化时,您可以使用上面文章中描述的方法使门户的缓存无效。

…web通知URL(从"设置"菜单中)你的网站

缓存也可以通过回收应用程序手动失效,在Microsoft Visual Studio中重建网站,保存网络。配置文件,或者通过添加浏览器工具栏按钮来点击缓存无效处理程序。这将刷新网站Microsoft Dynamics CRM变更

我碰巧知道这一点,因为这是AdxStudio使用的相同方法。本文描述了AdxStudio的参与,并提供了下载门户网站的链接(如果您还没有)。宣布客户和合作伙伴关系管理门户!

如果您正在使用上述加速器构建门户,那么Cache.axd将与您相关。如果你只是构建一些自定义的东西,那么缓存的使用和实现取决于你。

最新更新