Кеширование портала CRM 2011 - PullRequest
3 голосов
/ 18 августа 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 ]

1 голос
/ 05 октября 2011

Подробнее об URL-адресе веб-уведомления см. В следующей статье.

Настройка аннулирования кэша для обновления изменений на веб-сайте

1 голос
/ 13 сентября 2011

Убедитесь, что у вас настроен URL-адрес аннулирования кэша. Портал PRM имеет службу, которая делает недействительным кеш с любым событием обновления / создания (управляется плагином, зарегистрированным на всех сущностях).

Перейдите в Настройки -> URL-адрес веб-уведомления, либо обновите URL-адрес файла Cache.axd, либо создайте новую запись.

Если это все на месте, я бы позаботился о том, чтобы плагин, который заботится о вызове аннулирования кэша, работал / регистрировался, как и должно быть.

Надеюсь, что поможет

0 голосов
/ 15 мая 2015

Я обнаружил, что удаление параметра и значения 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>
...