为什么SiteMap.CurrentNode在升级到4.0后返回null

时间:2012-07-24 13:57:33

标签: asp.net c#-4.0 iis-6

我最近将网站升级到ASP.NET 4.0,并在将代码移动到登台服务器后,每次浏览到像mysite.com/bacon/这样的页面目录时,SiteMap.CurrentNode都为null。但是,如果我浏览mysite.com/bacon/default.aspx它可以正常工作。服务器和站点配置为4.0,文档默认设置为default.aspx是默认的第一页。

我还应该提到我的本地开发机器上没有发生这种行为,它认识到mysite.com/bacon/确实是mysite.com/bacon/default.aspx并且相应地设置了SiteMap.CurrentNode。

2 个答案:

答案 0 :(得分:2)

原来,SiteMap提供程序正在使用HttpContext.Request.rawUrl。 出于某种原因,从.Net 2.0更改为4.0,rawurl将不再返回您的默认文档,因此使用了HttpContext.Request.Path。

答案 1 :(得分:0)

检查您的Web.sitemap节点的URL(如果您使用此类文件!)并且不要忘记在URL的末尾添加“/”。例如,这将产生错误:

<siteMapNode title="bacon" url="mysite.com/bacon" description="" >

但这是正确的:

<siteMapNode title="bacon" url="mysite.com/bacon/" description="" >
相关问题