We have upgraded a CMS 5 site to CMS 6 R2 and find that *some* simple addresses generates a 404 Not found error.
After restarting the site or setting a brand new simple address, it works once. The next time it generates a 404 Not found.
What I have found is that although the page is in e.g. the NL language, the second time it is referenced EPiServer translates this into "...?id=1243&epslanguage=en" (i.e. the language gets all wrong going to the English version instead of the Netherland version).
Any of you guys/gals experienced this before? Any tips or thoughts???
I'm currently debugging this using Reflector but it's a rather time consuming shore so if you have a hunch or idea I'll happily accept it! =o)
I should also add that some pages work without any 404 but up to now I have found that these pages also have a corresponding page in English. The pages generating a 404 does not contain any EN language version.
Could it have something to do with the Mastelanguage? Are all pages using the same masterlanguage?
When using globalization, the simple addresses will only work for pages in the language which has been set as the default/bound language for on the requesting hostname.
I have been querying a very similar issue this week with EPi support. I sent them the following tests of which they respond that this behaviour is by design.
(In the example, I have two pages with simple addresses of page-en (an en language page) and page-sv (an sv language page))
Not sure if you have exactly this problem or the same configuration but hopefully this helps.
I'll just (somewhat late) post a workaround here as it might help another developer with doing a quick workaround. As the customer changed a lot on the site, this disappeared and became a non-issue... This was all related to a custom PageProvider that got rewritten later and heavy custom request routing.
The weird detail is that this worked once per simple address and then generated a 404 exception. As you pointed out, Adam, the simple address works per language but the weird thing was that the site worked once per simple address and then (out of the blue) rerouted to an entirely different language branch.
The workaround that I performed (ugly but got the site working again) was that after each simple address lookup, EPiServer caches this and uses this cached version the next time. So... After each time, I removed the simple address from the http cache.
The weird thing was that the simple address worked once and it was the subsequent uses of the cached simple address that didn't work.