通常の 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 を返します。ページが更新されるまでに、データはそこにあります。
公開したコードがライブ サーバーで実行されないのはなぜですか? なぜ違うものを実行するのですか?または異なる動作をしますか?別のサーバーであることは理解していますが、コードを同じように実行するべきではありませんか?