2012-07-12 59 views
0

我在我的代码,一个常规的Web应用程序下面的C#代码背后:C#代码具有不同的本地主机VS直播服务器

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。数据在页面刷新之前就已经存在了。

为什么现场服务器不运行我发布的代码?它为什么运行不同的东西?或者行为不同?我知道这是一个不同的服务器,但它不应该运行相同的代码?

+0

Web方法是否在同一页中?它不会被执行并且没有错误? – misha 2012-07-12 15:20:31

+2

如何插入一些日志记录函数来准确找出* *和*不会被调用? – 2012-07-12 15:20:57

+1

您是使用内置的ASP.NET开发服务器还是使用IIS Express?如果它是内置的,那么我会建议使用IIS Express来尝试它,因为这可能会让您更好地调试它在现场服务器上所做的事情。 – 2012-07-12 15:21:21

回答

0

函数validTime()究竟做了什么?如果您正在检查特定的时间限制,则可能是您的开发服务器设置为您的本地时区,这就是为什么它可以正常工作,但在实时服务器上,时区可能不同。只是一个猜测。

+0

有效时间检查今天的日期和时间与存储在我的数据库中的常量。我已经测试过这个功能,它似乎正在工作。所有的日期在未来3个月,所以它直到那个时候总是返回真实。 DateTime d = DateTime.MaxValue; if(!rdr.IsDBNull(0)) d = rdr.GetDateTime(“final_update_time”); } DateTime now = DateTime.Now; mycon.Close(); return(now user1014925 2012-07-12 15:32:39

+0

我可以删除有效时间全部一起检查并仍然获得相同的行为。 – user1014925 2012-07-12 15:35:28

+0

您是否期望else块中的displayCurrentPicks方法在回发时运行?如果是这样,那么lblSuccess.Text值是否显示预期的字符串“查看您当前的选择”? – mreyeros 2012-07-12 16:43:59

相关问题