Asp.net mvc 3 VS2012 SiteMapNode与VS2010不同吗?

Asp.net mvc 3 VS2012 SiteMapNode与VS2010不同吗?,asp.net-mvc-3,visual-studio-2010,visual-studio-2012,Asp.net Mvc 3,Visual Studio 2010,Visual Studio 2012,我正在尝试将一个MVC3项目从VisualStudio2010升级到VisualStudio2012,但在运行时遇到了XMLSiteMapProvider代码的问题 我在VS2012中遇到了一个null引用异常,尽管代码在VS2010中运行得很愉快,而且代码没有更改 我的代码如下: XmlSiteMapProvider site = new XmlSiteMapProvider(); SiteMapNode currentNode = site.FindSiteMapNodeFromKey(Ht

我正在尝试将一个MVC3项目从VisualStudio2010升级到VisualStudio2012,但在运行时遇到了XMLSiteMapProvider代码的问题

我在VS2012中遇到了一个null引用异常,尽管代码在VS2010中运行得很愉快,而且代码没有更改

我的代码如下:

XmlSiteMapProvider site = new XmlSiteMapProvider();
SiteMapNode currentNode = site.FindSiteMapNodeFromKey(HttpContext.Current.Response.ApplyAppPathModifier(HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath));
VS2010和VS2012手表的屏幕截图如下所示:

您应该能够看到的是,上面的代码被拆分为其组成部分,以查看返回的内容。重要的一行是VS2012窗口中的最后一行,它将返回null,而“成员选择”值在VS2010中找到

有人有什么想法吗

我已经检查了.Net版本和包含此类的System.Web.dll文件上的文件版本,它们在Visual Studio的两个版本中都是相同的

唯一的区别是VS2012在Win7中运行,而VS2010在WinXP中运行

这可能是IIS版本差异吗

如果我编写以下代码,VS2012将正常工作,但是VS2010会出现故障,因此看起来不同版本的代码并不完全相同

XmlSiteMapProvider site = new XmlSiteMapProvider();
SiteMapNode currentNode = site.FindSiteMapNodeFromKey(HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath);
任何帮助都将不胜感激

尼克