VS2012 SiteMapNode与VS2010不一样?

时间:2012-11-13 18:03:28

标签: asp.net-mvc-3 visual-studio-2010 visual-studio-2012

我正在尝试将MVC3项目从Visual Studio 2010升级到Visual Studio 2012,但是我在运行时遇到了XMLSiteMapProvider代码的问题。

我在VS2012中引发了一个空引用异常,即使代码在VS2010中运行愉快,并且代码没有改变。

我的代码如下:

XmlSiteMapProvider site = new XmlSiteMapProvider();
SiteMapNode currentNode = site.FindSiteMapNodeFromKey(HttpContext.Current.Response.ApplyAppPathModifier(HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath));

VS2010和VS2012手表的屏幕截图如下:

http://i.stack.imgur.com/siajS.png

http://i.stack.imgur.com/VAsMg.png

您应该能够看到的是上面的代码分成了它的组成部分,以查看返回的内容。重要的一个是VS2012窗口中的最后一行,它返回返回的空值,而在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);

非常感谢任何帮助,

尼克

0 个答案:

没有答案