什么(以及在哪里)是Dynamics CRM 2015门户演练中引用的cache.axd处理程序?

时间:2015-09-17 12:58:22

标签: dynamics-crm dynamics-crm-2015

我们正在调查Microsoft Dynamics CRM 2015的Developer Extensions包。在this article中,它们向您展示了如何添加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或文档中的任何位置找到它。

2 个答案:

答案 0 :(得分:2)

找到它。它位于Microsoft.Xrm.Portal.Web.Handlers中,需要通过web.config文件进行配置,如下所示:

<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 Marketplace中提供 - 但还没有任何迹象 - 所以我在Reflector中打开了DLL来看看它做了什么。

要刷新整个缓存,请使用:

GET /Cache.axd?Message=InvalidateAll

要刷新特定实体,请使用

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

支持的Message值似乎为发布更新创建 InvalidateAll ,我猜想在注册自定义CRM插件时可以看到可用的消息。

答案 1 :(得分:1)

Cache.axd网址需要映射到CRM SDK附带的Microsoft.Xrm.Portal.Web.Handlers.CacheInvalidationHandler类。

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

  

...转到的网页通知网址(来自“设置”菜单)   缓存您的网站的失效处理程序 ...

     

通过回收应用程序也可以手动使缓存无效   池,在Microsoft Visual Studio中重建网站,保存   web.config文件,或者添加将要命中的浏览器工具栏按钮   缓存失效处理程序。这将刷新网站   Microsoft Dynamics CRM更改。

我碰巧知道这一点,因为这与AdxStudio使用的方法相同。本文介绍了AdxStudio的参与情况,并提供了下载门户网站的链接(如果您已经有)。 Announcing the Customer and Partner Relationship Management Portals!

如果您使用上述加速器构建门户网站,那么Cache.axd将与您相关。如果您只是构建自定义的东西,那么缓存的使用和实现由您决定。