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>
}
何かご意見は?