In this scenario, we receive the following error message:
w3wp.exe (0x1104) 0x1670 CMS Publishing 8vzh
Unexpected PortalSiteMapProvider was unable to fetch current node, request URL:
/example/path/here/custom/pages/opportunitydetails.aspx, message: No
item exists at
http://SERVER/example/path/here/custom/pages/opportunitydetails.aspx?ID=20.
maybeenorbyuser.,
stack trace: at Microsoft.SharePoint.SPContext.get_Item() at
Microsoft.SharePoint.SPContext.get_ListItem() at
Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.get_CurrentNode()
Cause
When
we try passing the Query Parameter Name as ID to the .aspx Page (which
itself is the record in the document library) Sharepoint loses track of
what ID is used for. Sharepoint no longer knows if ID is the document in
the document library it uses to identify documents/pages on the server. Our solution should not be using a variable named ID.
Resolution
Change
the query string parameter from ID to CustomID. Then change the details
page from QueryString(ID) to QueryString(CustomID). Once this is done
the page will display with no errors.
More Information
DISCLAIMER
MICROSOFT AND/OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY MAY INCLUDE TECHNICAL INACCURACIES MAY BE REVISED AT ANY TIME WITHOUT NOTICE.
TO THE MAXIMUM EXTENT PERMITTED OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.