我们正在调查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或文档中的任何位置找到它。
答案 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
将与您相关。如果您只是构建自定义的东西,那么缓存的使用和实现由您决定。