CRM 2011门户缓存

时间:2011-08-17 20:02:08

标签: dynamics-crm-2011

我们使用客户门户网站的代码开发了一个门户网站。但我们还没有在CRM服务器上使用客户门户解决方案。一切正常,除了缓存阻止更新显示在门户上。

在CRM 4中,我使用了此解决方案http://pogo69.wordpress.com/2010/11/05/caching-revisited-crm-4-0-sdk-advanced-developer-extensions/。但这在CRM 2011中不起作用,因为Microsoft.Xrm.Client.Caching是不同的。如何清除2011年的缓存?

非常感谢任何帮助或想法。

谢谢!

3 个答案:

答案 0 :(得分:1)

确保您配置了缓存失效网址。 PRM门户网站的服务使任何更新/创建事件(由在所有实体上注册的插件管理)使缓存无效。

转到设置 - > Web通知URL,更新Cache.axd文件的URL或创建新条目。

如果这一切都到位,我会确保负责调用缓存失效的插件正在工作/注册。

希望有所帮助

答案 1 :(得分:1)

有关Web通知URL的详细信息,请参阅以下文章。

Set Up Cache Invalidation to Refresh Changes on the Website

答案 2 :(得分:0)

我发现删除了 preloadcache 参数&来自URL的值绕过CRM的缓存。不理想,但它奏效了。你的里程可能会有所不同......

    <script type="text/javascript">
        bypassCrmPreloadCache();    // DE_WR_15706 Bypass 30sec cache to get latest version #


        function bypassCrmPreloadCache() {
            var ParentURL = window.parent.location.href;
            var nStartPreloadcache = ParentURL.indexOf("preloadcache");
            if (nStartPreloadcache > 0) {
                // Parent URL is cached
                var nEnd = ParentURL.indexOf("&", nStartPreloadcache);
                if (nEnd == -1) { // Special case: no ampersand => preloadcache is last argument.
                    nEnd = ParentURL.length; // End of URL is end of preloadcache's value.      
                }
                var strPreloadCacheParamAndValue = ParentURL.substr(nStartPreloadcache, 1 + nEnd - nStartPreloadcache);
                // Remove preloadcache-parameter from URL
                ParentURL = ParentURL.replace(strPreloadCacheParamAndValue, "");
                if (ParentURL.charAt(ParentURL.length-1) == '&')
                    ParentURL = ParentURL.slice(0, -1); // Ensure URL not terminated by an unnecessary '&'.

                // Load URL in parent Window, bypassing the cache
                window.open(ParentURL, "_parent");
            }
        }
</script>