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