2012-07-12 9 views
0

대 다르게 로컬 호스트에서 동작 I 정기적으로 웹 응용 프로그램을위한 뒤에 내 코드에서 다음 C# 코드가 있습니다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 개발 서버. 라이브 서버에 게시 할 때 다른 동작이 있습니다.

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

가 다시 테스트 서버에서 실행하고 잘 작동 :

나는이 서명으로 내 데이터베이스에 데이터를 삽입하는 웹 방법이있다. 문제는 메서드가 페이지를 새로 고쳐야하고 반환하지만, 라이브 서버에서는 page_load 이벤트의 코드가 실행되지 않는다는 것입니다. 또는 다르게 실행됩니까? displayCurrentPicks() 메서드를 호출하지 않습니까? 그렇지 않으면 올바르게 실행되지 않습니까? 테스트 서버에서 완벽하게 실행된다는 점만 다릅니다.

테스트 서버에서 작동 할 때 코드를 통해 확인할 수있는 방법이 없습니다. 라이브 서버는 Godaddy에서 호스팅됩니다.

그리고 나는 모든 것을 시도했습니다. 올바른 방법을 수행 한 후 페이지 새로 고침을 시도하고 자바 스크립트에서 page_load 이벤트를 다시 실행하도록했습니다. 아무것도 작동하지 않습니다. 나는 며칠 동안 여기에 있었다. 그리고 모든 코드가 게시되고 있다고 확신합니다. 나는 평소 '바보 같은 수표'를 다 썼어. 데이터가 데이터베이스에 연결되면 picksMade() 함수는 거기에 데이터가 있으면 true를 반환합니다. 페이지가 새로 고쳐지는 시점까지 데이터가 있습니다.

왜 라이브 서버는 내가 게시 한 코드를 실행하지 않습니까? 왜 다른 것을 실행합니까? 아니면 다르게 행동합니까? 나는 그것이 다른 서버라는 것을 이해하지만 코드를 동일하게 실행해서는 안됩니까?

+0

웹 페이지가 동일한 페이지에 있습니까? 그것은 실행되지 않으며 오류도 발생하지 않습니까? – misha

+2

몇 가지 로깅 함수를 삽입하여 정확히 * * * * * 호출되지 않는 것을 찾습니다. –

+1

기본 제공 ASP.NET 개발 서버를 사용하고 있습니까? 아니면 IIS Express를 사용하고 있습니까? 내장 된 서버라면 IIS Express로 시도해 보는 것이 좋습니다. 라이브 서버에서 수행중인 작업을 디버깅 할 수있는 방법이 있습니다. –

답변

0

정확히 validTime() 함수는 무엇을합니까? 특정 시간 제약 조건을 확인하는 경우 개발 서버가 현지 시간대로 설정되어 작동 할 수 있지만 라이브 서버에서는 시간대가 다를 수 있습니다. 그래도 추측.

+0

유효 시간은 오늘의 날짜와 시간과 내 데이터베이스에 저장된 상수를 확인합니다. 나는 그 기능을 시험했으며 작동하는 것으로 보인다. 모든 날짜는 향후 3 개월이므로 항상 그 시간까지 true를 반환합니다. DateTime d = DateTime.MaxValue; if (! rdr.IsDBNull (0)) { d = rdr.GetDateTime ("final_update_time"); } DateTime now = DateTime.Now; mycon.Close(); 반환 (현재 user1014925

+0

유효한 시간 확인을 모두 제거 할 수 있지만 여전히 동일한 동작을 얻습니다. – user1014925

+0

else 블록에있는 displayCurrentPicks 메소드가 포스트 백에서 실행될 것으로 기대합니까? 그렇다면 lblSuccess.Text 값에 예상 문자열 "현재 선택보기"가 표시됩니까? – mreyeros