我正在尝试将 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);
任何帮助将非常感激,
缺口