1

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);

どんな助けでも大歓迎です、

ニック

4

0 に答える 0