0

通常の Web アプリケーションのコード ビハインドには、次の C# コードがあります。

protected void Page_Load(object sender, EventArgs e)
{
    if (!validTime())
    {
        btnEdit.Enabled = false;
        btnSubmit.Enabled = false; btnSubmit2.Enabled = false;
        lblSuccess.Text = "It is not currently the time to edit picks for this week.";
        lblSuccess.ForeColor = System.Drawing.Color.Red;
        if (picksMade())
        {
            displayCurrentPicks();
        }
    }
    else
    {
        if (picksMade())
        {
            btnEdit.Enabled = true;
            btnSubmit.Enabled = false; 
            btnSubmit2.Enabled = false;
            displayCurrentPicks();
            lblSuccess.Text = "Viewing your current picks";
            lblSuccess.ForeColor = System.Drawing.Color.Green;
            if (Session["Success"] != null && Session["Success"].ToString() != String.Empty)
            {
                lblSuccess.Text = Session["Success"].ToString();
                lblSuccess.ForeColor = System.Drawing.Color.Green;
                Session.Remove("Success");
            }
        }
        else
        {
            btnEdit.Enabled = false;
            btnSubmit.Enabled = true; btnSubmit2.Enabled = true;
            displayCreatePicks();
            lblSuccess.Text = "Create your picks for this week";
            lblSuccess.ForeColor = System.Drawing.Color.Green;
        }
    }
}

問題は、ASP.NET 開発サーバーを使用してテストすると、このコードがうまく機能することです。ライブサーバーに公開すると、動作が異なります。

このシグネチャを使用してデータベースにデータを挿入する Web メソッドがあります。

[WebMethod]
public static void savePicks(List<string> Points, List<string> Teams, List<string> TieBreaker)

繰り返しますが、テストサーバーでは実行され、うまく機能します。問題は、メソッドが返されたときにページを更新する必要があることですが、実際のサーバーでは page_load イベントのコードが実行されませんか? または別の方法で実行されますか?displayCurrentPicks() メソッドを呼び出すことはありませんか? または、そうであれば、正しく実行されませんか? ただし、テストサーバーで完全に実行されます。

このコードのステップ実行を確認する方法はありません。これを行うと、テスト サーバーでうまく機能するからです。ライブサーバーは Godaddy でホストされています。

そして、私はすべてを試しました。正しいメソッドの後にページの更新を試み、javascript で page_load イベントを強制的に再実行しようとしました。何も機能しません。私はここ数日これに取り組んでいます。そして、すべてのコードが公開されていると確信しています。私はすべての通常の「愚かなチェック」を行いました。データはデータベースに送信されます。picksMade() 関数は、そこにデータがある場合に true を返します。ページが更新されるまでに、データはそこにあります。

公開したコードがライブ サーバーで実行されないのはなぜですか? なぜ違うものを実行するのですか?または異なる動作をしますか?別のサーバーであることは理解していますが、コードを同じように実行するべきではありませんか?

4

1 に答える 1

0

関数 validTime() は正確に何をしますか? 特定の時間の制約を確認している場合、開発サーバーがローカル タイム ゾーンに設定されている可能性があり、それが動作している理由ですが、実際のサーバーではタイム ゾーンが異なる場合があります。推測ですが。

于 2012-07-12T15:25:56.357 に答える