1

CRM 2011 内に新しいアカウントを登録できるようにする ASP.NET Web ページを作成しています。このページには、

「'/' アプリケーションでサーバー エラーが発生しました。オブジェクト参照がオブジェクトのインスタンスに設定されていません。」

コードを再発行すると解決しますが、内部で何が起こっているのでしょうか? 時間が限られているため、ログインの問題に関連している可能性があると思われますが、Web.config ファイルに保存されている資格情報を使用してページが読み込まれると、ログインが実行されます。

私が持っているASPXページで

void Page_Load ( object sender , EventArgs e )
{
    LoadValues ( sender , e );

    if (!IsPostBack)
    {
        Session["PageRefresh"] = System.DateTime.Now.ToString();
    }
}

protected void Page_PreRender(object sender, EventArgs e)
{
    ViewState["PageRefresh"] = Session["PageRefresh"];
    stateView = DateTime.Parse(Session["PageRefresh"].ToString());
}

IsPostBack を 2 つの場所で使用しています。

if ((StatVar.firstExec == true || (DateTime.Parse(Session["PageRefresh"].ToString()) != stateView)) && !IsPostBack)
    ContactDropDownList.Items.Add ( new ListItem ( " " , "0" ) );

if ( (StatVar.firstExec == true || (DateTime.Parse(Session["PageRefresh"].ToString()) != stateView)) && !IsPostBack)
    ContactDropDownList.Items.Add ( new ListItem ( value , indString ) );
4

2 に答える 2

1

これはログイン タイムアウトに関連しているように思えます。デフォルトのタイムアウトは 20 分だと思います。Web 構成とページの読み込みでログインが処理されていると言及していることは知っていますが、コードを見ないと、!IsPostBack ステートメントまたはログインを停止している他の何かでそれを取得しているかどうかを確認することは不可能です。

利用可能な情報が限られているため、エラーの説明から、ユーザーがログアウトしているように聞こえ、何らかの要素 (ログイン、メンバーシップの詳細などに関連している可能性があります) がクエリされ、null が返されます。

于 2013-08-26T11:18:01.300 に答える
0

prerender は、セッションが null かどうかを確認せずに直接使用します。セッションは、事前に設定された期間が経過すると自動的に期限切れになるように設計されており、デフォルトの期間は 20 分です。以下のコードを試してください

protected void Page_PreRender(object sender, EventArgs e)
{
   if(Session["PageRefresh"] != null)
   {
        ViewState["PageRefresh"] = Session["PageRefresh"];
        stateView = DateTime.Parse(Session["PageRefresh"].ToString());
   }
}
于 2013-08-27T03:28:10.533 に答える