MVC3 プロジェクトを Visual Studio 2010 から Visual Studio 2012 にアップグレードしようとしていますが、XMLSiteMapProvider コードで実行時に問題が発生しています。
コードが VS2010 で正常に実行され、コードが変更されていない場合でも、VS2012 で null 参照例外がスローされます。
私のコードは次のとおりです。
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 ウィンドウの最後の行で、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);
どんな助けでも大歓迎です、
ニック