triggerDictionaryRebuildRegex

Feb 21, 2013 at 7:50 AM
Hi, I noticed when you edit or add a page, it is not accesible, because the index is not kept up to date. You said you can force an update of the index by using the triggerDictionaryRebuildRegex option. Now this will work fine for pages, like /ctl/tab or admin/tabs/. But in DNN 6, you also have the option to change the page name directly from the control panel. So there is no way you can enter a reg. expr. for this case.
So is there some way of forcing a rebuild of the dictionary. Perhaps even an option to rebuild it with every request?
Feb 22, 2013 at 7:48 AM
Well... do you have a solution?
Coordinator
Feb 24, 2013 at 11:14 PM
It's a known issue that the DNN 6 toolbar is not compatible with the provider for the reason that you state.

I do not suggest triggering a rebuild on each request - this will kill your performance.

If you want to develop a manual trigger, you can designate a specific Url (such as adding a ?rebuild=true) and then match that in your triggerDictionaryRebuildRegex value. Then, if you need to rebuild the index, you can request that Url. That would be one way of dealing with the issue.

There are no plans to update the provider to fix the underlying issue because the new Url Provider in DNN 7.1 will do everything this provider does already.
Feb 25, 2013 at 9:24 AM
I understand, but what I was thinking is that if you press the "Update" button in the toolbar, some kind of post is being made to the server.
Isn't there some value in that post that can be used to trigger the rebuild. Something like cmd/update or whatever?
Coordinator
Feb 26, 2013 at 9:46 PM
The control bar postbacks are made with ajax so the Url is the same as the current page, so you can't do a Url match on that. Without digging deep into the request, it is impossible from a Url point of view to determine a postback from the control bar which adds or updates a page, as opposed to just any other submit like a login button click. That is why the issue is still not fixed, because it is very difficult to do so. The solution lies in completely changing the way the page index is maintained, and creating a cache dependency on other items in the DNN Cache (tabs, portals, etc) rather than trying to catch Urls that trigger a change.