I use the web.sitemap of my ASP.net application to help build my navigation links. That way, if my navigation changes, I update web.sitemap and it automatically creates my navigation. However, after upgrading from ASP.net 3.5 to 4.0, I am having problems with my web.sitemap file. After upgrading to ASP.net 4.0, links created from my web.sitemap sometimes have strange characters inserted after the domain name (the link is broken specifically because my limit is 2):
http // www.cheatsheetwarroom.com / (AUjJQoX4zAEkAAAAN2VlZTM2N2MtOWU5Mi00OWUyLTllZTUtMTY4MDY3ZGM2MTM2hMR-oHFFNS-DVXxMDadonaHu8pk1) / / -fan run /
This can be seen by linking to the Sitemap Page link (if it is broken when you view it).
The problem caused by this is that the following method (which takes node as its parameter in the URL of the sitemap) starts to return NULL for any nodes in my application, even if I point to the nodes that I know in my web.sitemap file:
SiteMapNode myNode = SiteMap.Provider.FindSiteMapNode("~/fantasy-football/nfl/free/rankings/player-rankings.aspx");
This is apparently because the funky URLs generated by the web map no longer match the explicit sites I'm looking for. Since many of my menu controls are based on comparing the current page with the nodes in the web.sitemap file, most of my navigation transitions. Returning to ASP.net 3.5, everything works again.
I found this suggested solution in Stack Overflow that says that the problem is with cookieless mode. However, as you can see in my web.config below, I force the use of cookies. Thus, the proposed fix does not fully work, or I am not correctly forcing the use of cookies. I should note that updating the web.config file (in any form or mode) sometimes fixes the problem for a moment, just to make it appear again.
My web.config
<?xml version="1.0"?> <configuration> <configSections> <section name="cheatSheetWarRoom" type="BP.CheatSheetWarRoom.CheatSheetWarRoomSection"/> </configSections> <cheatSheetWarRoom defaultConnectionStringName="LocalSqlServer" enableAdvertisements="true" applicationState="prod"> <contactForm mailTo=" admin@cheatsheetwarroom.com " mailCC=" bperniciaro@gmail.com "/> <sheets pageSize="25" providerType="BP.CheatSheetWarRoom.DAL.SqlClient.SqlSheetsProvider" enableCaching="true" cacheDuration="300" defaultSportCode="FOO" defaultQBsPerSheet="35" defaultRBsPerSheet="50" defaultWRsPerSheet="50" defaultTEsPerSheet="35" defaultKsPerSheet="32" defaultDEFsPerSheet="32"/> </cheatSheetWarRoom> <connectionStrings configSource="configuration\connstrings\ConnStringsProd.config"/> <location path="." inheritInChildApplications="false"> <system.web> <healthMonitoring enabled="true"> <eventMappings> <clear/> <add name="All Errors" type="System.Web.Management.WebBaseErrorEvent" startEventCode="0" endEventCode="2147483647"/> </eventMappings> <providers> <clear/> <add connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="false" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider"/> </providers> <rules> <clear/> <add name="All Errors Default" eventName="All Errors" provider="SqlWebEventProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" custom=""/> </rules> </healthMonitoring> <sessionState timeout="60"/> <authentication mode="Forms"> <forms name="CSWRFORMAUTH" protection="All" path="/" loginUrl="~/error/AccessDenied.aspx" timeout="2592000" cookieless="UseCookies"/> </authentication> <roleManager enabled="true"/> <membership defaultProvider="CSWR_MembershipProvider" userIsOnlineTimeWindow="15"> <providers> <add name="CSWR_MembershipProvider" connectionStringName="LocalSqlServer" applicationName="/" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,
 PublicKeyToken=b03f5f7f11d50a3a"/> </providers> </membership> <anonymousIdentification cookieless="UseCookies" enabled="true"/> <profile defaultProvider="CSWR_ProfileProvider"> <providers> <add name="CSWR_ProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </providers> <properties> <add name="FirstName" type="String"/> <add name="FavoriteTeam" type="String"/> <add name="EmailNotifications" type="Bool" defaultValue="true"/> <group name="SiteSettings"> <add name="LastFootballCheatSheetID" type="Integer"/> <add name="LastRacingCheatSheetID" type="Integer"/> <add name="FiguredOutReordering" type="Boolean" defaultValue="false"/> </group> </properties> </profile> <machineKey validationKey="B8C7F65D22B69591SDFSDFSDF68331064D46D3B43F7DB71F6AA6EE854475E10B92C030D7D41D75B3AB50F1B7B0F85126E68FFFE1F0114B825E6DD34D284D10" decryptionKey="3B168CB07DFD5F5FB7EAFDSDFDSSDF8BD41ABFB37D4537" validation="SHA1"/> <customErrors mode="Off" defaultRedirect="~/Error/Error.aspx"> <error statusCode="408" redirect="~/Error/Error.aspx?code=408"/> <error statusCode="505" redirect="~/Error/Error.aspx?code=505"/> </customErrors> <siteMap defaultProvider="CSWR_SiteMapProvider" enabled="true"> <providers> <add name="CSWR_SiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/> </providers> </siteMap> <pages theme="Web20" masterPageFile="~/MasterPages/Web20Master/Frame.master"> <controls> <add tagPrefix="captcha" namespace="WebControlCaptcha" assembly="WebControlCaptcha"/> <add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxToolkit"/> <add tagPrefix="cswr" src="~/usercontrols/HoverImage.ascx" tagName="HoverImage"/> <add tagPrefix="cswr" src="~/usercontrols/SEOPager.ascx" tagName="SEOPager"/> <add tagPrefix="cswr" src="~/usercontrols/UserProfile.ascx" tagName="UserProfile"/> <add tagPrefix="cswr" src="~/usercontrols/AdGenerator.aspx" tagName="AdGenerator"/> <add tagPrefix="cswr" src="~/usercontrols/Football/PlayerRankingItemTemplate.aspx" tagName="PlayerRankingItemTemplate"/> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </controls> </pages> <compilation debug="false" targetFramework="4.0" /> </system.web> </location> <location path="EditProfile.aspx"> <system.web> <authorization> <allow roles="Member"/> <deny users="*"/> </authorization> </system.web> </location> <system.net> <mailSettings> <smtp deliveryMethod="Network" from=" admin@CheatSheetWarRoom.com "> <network defaultCredentials="true" host="localhost" port="25"/> </smtp> </mailSettings> </system.net> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> <handlers> <add name ="CaptchaImage" verb="GET" path="CaptchaImage.aspx" type="WebControlCaptcha.CaptchaImageHandler, WebControlCaptcha"/> </handlers> </system.webServer> </configuration>
= "3B168CB07DFD5F5FB7EAFDSDFDSSDF8BD41ABFB37D4537" validation = "SHA1" /> <?xml version="1.0"?> <configuration> <configSections> <section name="cheatSheetWarRoom" type="BP.CheatSheetWarRoom.CheatSheetWarRoomSection"/> </configSections> <cheatSheetWarRoom defaultConnectionStringName="LocalSqlServer" enableAdvertisements="true" applicationState="prod"> <contactForm mailTo=" admin@cheatsheetwarroom.com " mailCC=" bperniciaro@gmail.com "/> <sheets pageSize="25" providerType="BP.CheatSheetWarRoom.DAL.SqlClient.SqlSheetsProvider" enableCaching="true" cacheDuration="300" defaultSportCode="FOO" defaultQBsPerSheet="35" defaultRBsPerSheet="50" defaultWRsPerSheet="50" defaultTEsPerSheet="35" defaultKsPerSheet="32" defaultDEFsPerSheet="32"/> </cheatSheetWarRoom> <connectionStrings configSource="configuration\connstrings\ConnStringsProd.config"/> <location path="." inheritInChildApplications="false"> <system.web> <healthMonitoring enabled="true"> <eventMappings> <clear/> <add name="All Errors" type="System.Web.Management.WebBaseErrorEvent" startEventCode="0" endEventCode="2147483647"/> </eventMappings> <providers> <clear/> <add connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="false" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider"/> </providers> <rules> <clear/> <add name="All Errors Default" eventName="All Errors" provider="SqlWebEventProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" custom=""/> </rules> </healthMonitoring> <sessionState timeout="60"/> <authentication mode="Forms"> <forms name="CSWRFORMAUTH" protection="All" path="/" loginUrl="~/error/AccessDenied.aspx" timeout="2592000" cookieless="UseCookies"/> </authentication> <roleManager enabled="true"/> <membership defaultProvider="CSWR_MembershipProvider" userIsOnlineTimeWindow="15"> <providers> <add name="CSWR_MembershipProvider" connectionStringName="LocalSqlServer" applicationName="/" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,
 PublicKeyToken=b03f5f7f11d50a3a"/> </providers> </membership> <anonymousIdentification cookieless="UseCookies" enabled="true"/> <profile defaultProvider="CSWR_ProfileProvider"> <providers> <add name="CSWR_ProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </providers> <properties> <add name="FirstName" type="String"/> <add name="FavoriteTeam" type="String"/> <add name="EmailNotifications" type="Bool" defaultValue="true"/> <group name="SiteSettings"> <add name="LastFootballCheatSheetID" type="Integer"/> <add name="LastRacingCheatSheetID" type="Integer"/> <add name="FiguredOutReordering" type="Boolean" defaultValue="false"/> </group> </properties> </profile> <machineKey validationKey="B8C7F65D22B69591SDFSDFSDF68331064D46D3B43F7DB71F6AA6EE854475E10B92C030D7D41D75B3AB50F1B7B0F85126E68FFFE1F0114B825E6DD34D284D10" decryptionKey="3B168CB07DFD5F5FB7EAFDSDFDSSDF8BD41ABFB37D4537" validation="SHA1"/> <customErrors mode="Off" defaultRedirect="~/Error/Error.aspx"> <error statusCode="408" redirect="~/Error/Error.aspx?code=408"/> <error statusCode="505" redirect="~/Error/Error.aspx?code=505"/> </customErrors> <siteMap defaultProvider="CSWR_SiteMapProvider" enabled="true"> <providers> <add name="CSWR_SiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/> </providers> </siteMap> <pages theme="Web20" masterPageFile="~/MasterPages/Web20Master/Frame.master"> <controls> <add tagPrefix="captcha" namespace="WebControlCaptcha" assembly="WebControlCaptcha"/> <add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxToolkit"/> <add tagPrefix="cswr" src="~/usercontrols/HoverImage.ascx" tagName="HoverImage"/> <add tagPrefix="cswr" src="~/usercontrols/SEOPager.ascx" tagName="SEOPager"/> <add tagPrefix="cswr" src="~/usercontrols/UserProfile.ascx" tagName="UserProfile"/> <add tagPrefix="cswr" src="~/usercontrols/AdGenerator.aspx" tagName="AdGenerator"/> <add tagPrefix="cswr" src="~/usercontrols/Football/PlayerRankingItemTemplate.aspx" tagName="PlayerRankingItemTemplate"/> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </controls> </pages> <compilation debug="false" targetFramework="4.0" /> </system.web> </location> <location path="EditProfile.aspx"> <system.web> <authorization> <allow roles="Member"/> <deny users="*"/> </authorization> </system.web> </location> <system.net> <mailSettings> <smtp deliveryMethod="Network" from=" admin@CheatSheetWarRoom.com "> <network defaultCredentials="true" host="localhost" port="25"/> </smtp> </mailSettings> </system.net> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> <handlers> <add name ="CaptchaImage" verb="GET" path="CaptchaImage.aspx" type="WebControlCaptcha.CaptchaImageHandler, WebControlCaptcha"/> </handlers> </system.webServer> </configuration>
My web map.
<?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="~/default.aspx" title="Fantasy Cheat Sheets" description="Create customized fantasy draft cheat sheets for various fantasy sports including NFL football and NASCAR racing, or free."> <siteMapNode url="~/register.aspx" title="Register" description="Register to unlock the full power of CheatSheetWarRoom." /> <siteMapNode url="~/sitemap.aspx" title="Sitemap" description="View all pages of our website provided as hyperlinks for easy navigation." /> <siteMapNode url="~/faq.aspx" title="FAQ" description="Get answers to frequently asked questions." /> <siteMapNode url="~/about.aspx" title="About" description="Read about what drove the creation of our cheat sheet creation tools." /> <siteMapNode url="~/contact.aspx" title="Contact" description="Contact us with any queries or suggestions you may have." /> <siteMapNode url="~/passwordrecovery.aspx" title="Password Recovery" description="If you've forgot your password, validate yourself and we'll sent it to you." /> <siteMapNode url="~/editprofile.aspx" title="Edit Profile" description="Edit your personal profile to keep your personal information current." /> <siteMapNode url="~/admin/Users/UserStats.aspx?" title="Admin" roles="Administrator" description="An entry point into the administration menu." /> <siteMapNode url="/FantasyFootball" title="Fantasy Football" description="These pages are relevant to fantasy football." roles="*" link="false"> <siteMapNode url="~/fantasy-football/nfl/cheat-sheets.aspx" title="Fantasy Football Cheat Sheets" description="Prepare for your 2011 NFL fantasy football draft by creating customized fantasy football cheat sheets, for free."></siteMapNode> <siteMapNode url="~/fantasy-football/nfl/cheat-sheet-help.aspx" title="Football Cheat Sheet Help" description="Explore all features for creating fantasy football cheat sheets."/> <siteMapNode url="~/fantasy-football/nfl/trophies/cheap-trophies.aspx" title="Cheap Fantasy Football Trophies" description="These cheap fantasy football trophies are of the highest quality."></siteMapNode> <siteMapNode url="~/fantasy-football/nfl/trophies/funny-trophies.aspx" title="Funny Fantasy Football Trophies" description="Add a comedic touch to your league with a funny fantasy football trophy."></siteMapNode> <siteMapNode url="/FantasyFootballCreateSheetCreation" title="Fantasy Football Cheat Sheet Creation" description="The creation of cheat sheets." roles="*" link="false"> <siteMapNode url="~/fantasy-football/nfl/create/custom-sheet.aspx" title="Custom Fantasy Football Cheat Sheet" description="Use this free, custom fantasy football cheat sheet to easily create your NFL fantasy player rankings using drag and drop."></siteMapNode> <siteMapNode url="~/fantasy-football/nfl/create/editsheet.aspx" title="Edit Fantasy Football Cheat Sheet" showNode="false"></siteMapNode> <siteMapNode url="~/fantasy-football/nfl/create/newsheet.aspx" title="New Fantasy Football Cheat Sheet"></siteMapNode> <siteMapNode url="~/fantasy-football/nfl/create/managesheets.aspx" title="Manage Fantasy Football Cheat Sheet"></siteMapNode> <siteMapNode url="~/fantasy-football/nfl/create/configureprint.aspx" title="Configure Printable Fantasy Football Cheat Sheet" roles="Member, SupplementalSource, Administrator"></siteMapNode> </siteMapNode> <siteMapNode url="/FantasyFootballFree" title="Free Fantasy Football Resources" roles="*" link="false"> <siteMapNode url="~/fantasy-football/nfl/free/rankings/player-rankings.aspx" roles="*" title="2011 NFL Player Rankings"> <siteMapNode url="/FantasyFootballFreeRankingsOffense" title="Offensive Positions" link="false" roles="*"> <siteMapNode url="~/fantasy-football/nfl/free/rankings/offense/quarterbacks.aspx" title="Quarterback Rankings" description="View our free quarterback rankings in preparation for your 2011 fantasy football draft." /> <siteMapNode url="~/fantasy-football/nfl/free/rankings/offense/running-backs.aspx" title="Running Back Rankings" description="View our free running back rankings in preparation for your 2011 fantasy football draft." /> <siteMapNode url="~/fantasy-football/nfl/free/rankings/offense/wide-receivers.aspx" title="Wide Receiver Rankings" description="View our free wide receiver rankings in preparation for your 2011 fantasy football draft." /> <siteMapNode url="~/fantasy-football/nfl/free/rankings/offense/tight-ends.aspx" title="Tight End Rankings" description="View our free tight end rankings in preparation for your 2011 fantasy football draft." /> <siteMapNode url="~/fantasy-football/nfl/free/rankings/offense/kickers.aspx" title="Kicker Rankings" description="View our free kicker rankings in preparation for your 2011 fantasy football draft." /> <siteMapNode url="~/fantasy-football/nfl/free/rankings/offense/defenses.aspx" title="Defense Rankings" description="View our free defense rankings in preparation for your 2011 fantasy football draft." /> </siteMapNode> </siteMapNode> <siteMapNode url="~/fantasy-football/nfl/free/printable/cheat-sheets.aspx" title="Printable Fantasy Football Cheat Sheets" roles="*"> <siteMapNode url="/FantasyFootballFreePrintableCheatSheetsOffense" title="Offensive Positions" link="false" roles="*"> <siteMapNode url="~/fantasy-football/nfl/free/printable/offense/cheat-sheet-with-roster.aspx" title="Printable Fantasy Football Cheat Sheet With Roster" roles="*"/> <siteMapNode url="~/fantasy-football/nfl/free/printable/offense/quarterbacks-cheat-sheet.aspx" title="Printable Quarterbacks Cheat Sheet" roles="*"/> <siteMapNode url="~/fantasy-football/nfl/free/printable/offense/running-backs-cheat-sheet.aspx" title="Printable Running Backs Cheat Sheet" roles="*"/> <siteMapNode url="~/fantasy-football/nfl/free/printable/offense/wide-receivers-cheat-sheet.aspx" title="Printable Wide Receivers Cheat Sheet" roles="*"/> <siteMapNode url="~/fantasy-football/nfl/free/printable/offense/tight-ends-cheat-sheet.aspx" title="Printable Tight Ends Cheat Sheet" roles="*"/> <siteMapNode url="~/fantasy-football/nfl/free/printable/offense/kickers-cheat-sheet.aspx" title="Printable Kickers Cheat Sheet" roles="*"/> <siteMapNode url="~/fantasy-football/nfl/free/printable/offense/defenses-cheat-sheet.aspx" title="Printable Defenses Cheat Sheet" roles="*"/> </siteMapNode> </siteMapNode> <siteMapNode url="~/fantasy-football/nfl/free/links.aspx" title="Fantasy Football Links" description="This page contains links to various fantasy NFL football websites categorized by type." /> </siteMapNode> </siteMapNode> <siteMapNode url="/FantasyRacing" title="Fantasy Racing" description="These pages are relevant to fantasy racing." roles="*" link="false"> <siteMapNode url="~/fantasy-racing/nascar/cheat-sheets.aspx" title="Fantasy Racing Cheat Sheets" description="Prepare for your 2011 NASCAR fantasy racing draft by creating customized fantasy racing cheat sheets, for free."></siteMapNode> <siteMapNode url="~/fantasy-racing/nascar/cheat-sheet-help.aspx" title="Racing Cheat Sheet Help" description="Explore all features for creating fantasy racing cheat sheets."/> <siteMapNode url="/FantasyRacingCreateSheetCreation" title="Fantasy Racing Cheat Sheet Creation" description="The creation of cheat sheets." roles="*" link="false"> <siteMapNode url="~/fantasy-racing/nascar/create/custom-sheet.aspx" title="Custom Fantasy Racing Cheat Sheet" description="Use this free, custom fantasy racing cheat sheet to easily create your fantasy NASCAR driver rankings using drag and drop."></siteMapNode> <siteMapNode url="~/fantasy-racing/nascar/create/editsheet.aspx" title="Edit Fantasy Racing Cheat Sheet" showNode="false"></siteMapNode> <siteMapNode url="~/fantasy-racing/nascar/create/newsheet.aspx" title="New Fantasy Racing Cheat Sheet"></siteMapNode> <siteMapNode url="~/fantasy-racing/nascar/create/managesheets.aspx" title="Manage Fantasy Racing Cheat Sheet"></siteMapNode> </siteMapNode> <siteMapNode url="/FantasyRacingFree" title="Free Fantasy Racing Resources" roles="*" link="false"> <siteMapNode url="~/fantasy-racing/nascar/free/links.aspx" title="Fantasy Racing Links" description="This page contains links to various fantasy NASCAR racing websites categorized by type." /> <siteMapNode url="~/fantasy-racing/nascar/free/rankings/drivers.aspx" title="2011 NASCAR Driver Rankings" description="Use this free, custom fantasy racing cheat sheet to easily create your fantasy NASCAR driver rankings using drag and drop." /> <siteMapNode url="~/fantasy-racing/nascar/free/printable/drivers-cheat-sheet.aspx" title="Free Printable Fantasy Racing Cheat Sheet" description="This free, printable fantasy racing cheat sheet includes all drivers for the 2011 fantasy NASCAR draft." /> </siteMapNode> </siteMapNode> <siteMapNode title="Legal" roles="*"> <siteMapNode url="~/Legal/Disclaimer.aspx" title="Disclaimer" description="Read our legal disclaimer to learn about who we are AND AREN'T affiliated with."/> <siteMapNode url="~/Legal/PrivacyPolicy.aspx" title="Privacy Policy" description="Your privacy is important to us and we won't share this information."/> <siteMapNode url="~/Legal/TermsOfService.aspx" title="Terms of Service" description="Our Terms of Service provide you with rules dictating how you can use our website."/> </siteMapNode> <siteMapNode url="/AdminMain" roles="Administrator" title="Admin" showNode="false"> <siteMapNode url="~/admin/summary.aspx" roles="Administrator" title="Stats" description=""> <siteMapNode title="Users" roles="Administrator" url="/Users" description=""> <siteMapNode url="~/admin/users/manageusers.aspx" roles="Administrator" title="Manage Users" description="" /> <siteMapNode url="~/admin/users/edituser.aspx" roles="Administrator" title="Edit User" description="" /> </siteMapNode> <siteMapNode title="Football" roles="Administrator" url="/Football" description=""> <siteMapNode url="~/admin/sports/football/sheetsettings.aspx" roles="Administrator" title="Sheet Settings" description="" /> <siteMapNode title="Players" roles="Administrator" url="/FootballPlayers" description=""> <siteMapNode url="~/admin/sports/football/players/manageplayers.aspx" roles="Administrator" title="Manage Players" description="" /> <siteMapNode title="Stats" url="/FootballStats" roles="Administrator" description=""> <siteMapNode url="~/admin/sports/football/players/stats/manageplayerseasonstats.aspx" roles="Administrator" title="Manage Player Season Stats" description="" /> <siteMapNode title="Import" roles="Administrator" description=""> <siteMapNode url="~/admin/sports/football/players/stats/import/importseasonstats.aspx" roles="Administrator" title="Import Season Stats" description="" /> <siteMapNode url="~/admin/sports/football/players/stats/import/mapplayerids.aspx" roles="Administrator" title="Map PlayerIDs" description="" /> </siteMapNode> </siteMapNode> </siteMapNode> <siteMapNode title="Supplementals" roles="Administrator" url="/FootballSupplementals" description=""> <siteMapNode roles="Administrator" url="~/admin/sports/football/supplementals/managesupplementalsheets.aspx" title="Manage Supplemental Sheets" description="" /> <siteMapNode roles="Administrator" url="~/admin/sports/football/supplementals/editsupplementalsheet.aspx" title="Edit Supplemental Sheet" description="" /> <siteMapNode roles="Administrator" url="~/admin/sports/football/supplementals/ranksupplementalplayers.aspx" title="Rank Supplemental Players" description="" /> <siteMapNode roles="Administrator" url="~/admin/sports/football/supplementals/managesupplementalsources.aspx" title="Manage Supplemental Sources" description="" /> <siteMapNode roles="Administrator" url="~/admin/sports/football/supplementals/scraperankings.aspx" title="Scrape Rankings" description="" /> </siteMapNode> </siteMapNode> <siteMapNode title="Racing" roles="Administrator" url="/Racing" description=""> <siteMapNode url="~/admin/sports/racing/sheetsettings.aspx" roles="Administrator" title="Sheet Settings" description="" /> <siteMapNode title="Drivers" roles="Administrator" url="/RacingDrivers" description=""> <siteMapNode url="~/admin/sports/racing/drivers/managedrivers.aspx" roles="Administrator" title="Manage Drivers" description="" /> <siteMapNode title="Stats" url="/RacingStats" roles="Administrator" description=""> <siteMapNode url="~/admin/sports/racing/drivers/stats/managedriverseasonstats.aspx" roles="Administrator" title="Manage Driver Season Stats" description="" /> </siteMapNode> </siteMapNode> <siteMapNode title="Supplementals" roles="Administrator" url="/RacingSupplementals" description=""> <siteMapNode roles="Administrator" url="~/admin/sports/racing/supplementals/managesupplementalsheets.aspx" title="Manage Racing Supplemental Sheets" description="" /> <siteMapNode roles="Administrator" url="~/admin/sports/racing/supplementals/ranksupplementalplayers.aspx" title="Rank Supplemental Players" description="" /> <siteMapNode roles="Administrator" url="~/admin/sports/racing/supplementals/editsupplementalsheet.aspx" title="Edit Supplemental Sheet" description="" /> </siteMapNode> </siteMapNode> <siteMapNode title="Health" roles="Administrator" url="/Health" description=""> <siteMapNode roles="Administrator" url="~/admin/health/manageexceptions.aspx" title="Manage Exceptions" description="" /> </siteMapNode> </siteMapNode> </siteMapNode> <siteMapNode title="Errors"> </siteMapNode> </siteMapNode> </siteMap>
I tried this problem most of the year, so any help would be appreciated.