1

Visual Studio 2012がインストールされた新しく構築されたマシンで以前は問題なく機能していた、既存のASP.NETMVC3プロジェクトを開きました。

次のコードでnull例外が発生しています。ユーザーがログインした後、次のコードが実行され、ページフラグメントレベルのアクセスが実行されます。

null例外はWebViewPage.Userオブジェクトでスローされます。ただし、デバッグモードでは、オブジェクトの実際のインスタンスを実際に検査できます(下の画像を参照)。

 public static class WebViewPageExtensions
 {
      public static bool HasAccess(this WebViewPage pg)
        {
            if (pg == null) throw new ArgumentNullException("WebViewPage is null");
            if (pg.User == null) throw new ArgumentNullException("WebViewPage User is null");              
            return pg.User.IsInRole(User.ACCESS_LEVEL_A) || pg.User.IsInRole(User.ACCESS_LEVEL_B);
        }
 }

注:これは私の環境の構成方法(web.configかもしれませんか?)に関係している可能性がありますが、どこから始めればよいのかよくわかりません。現状では、これが発生しているコードは、本番環境と以前の開発者環境で実行されているコードと同じです。

すべての参照は、.NET4.0プラットフォームで実行されているフレームワークのASP.NETMVC3バージョンを引き続き参照しています。

検査

編集:Razerビューからのcallilngコードは次のとおりです。

 @if (this.HasAccess()) {                 
        <div>
                HTML here
        </div>  
    }

何かご意見は?

4

1 に答える 1

1

リンクhttp://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253815のセクション「ASP.NETMVC4をインストールするとASP.NETMVC3RTMアプリケーションが破損する」をお読みください。setpsの「必要な更新」に従ってMVC3アプリを更新します。
気づかなかった場合、MVC4はVS2012とともにインストールされ、これは文書化された動作です。

于 2012-10-04T21:46:11.170 に答える