2012-05-31 3 views
0

에있는 HttpContext를 잊으 셨나요 다음 함수 호출 '응답이 문맥 오류에 사용할 수없는'난은 System.Web.HttpContext를 추가 라인을 변경했습니다내가지고있어 사용자 정의 이벤트

Private Sub ReloadPage(ByVal inNumber As Integer) Handles tempaux.Advertise 
    'Response.Redirect("tope.aspx?dep=" & CStr(inNumber)) 
    Response.Write("<script>window.open('tope.aspx?dep= & CStr(inNumber)','topFrame');</script>") 
End Sub 

. Response.Write 앞에 현재 '개체 참조가 개체의 인스턴스로 설정되지 않았습니다'가 표시됩니다.

몇 가지 배경을 제공합니다. tope.aspx는 보시다시피 Topframe에서 열렸습니다. 즉시이로드는 내가 정의한 CustomTimer 객체를 시작합니다

Public Class tope 
    Inherits System.Web.UI.Page 
    Public funciones As funciones = New funciones 
    Dim WithEvents tempaux As CustomTimer = Global.objCustomTimer 

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Dim inUserProfile As Int64 
     Try 
      tempaux.StartTimer() 
     Catch ex As Exception 
      'bla bla 
     End Try 

당신은 내가 Global.asax에있는 CustomTimer 선언했습니다 볼 수 있듯이. CustomTimer 객체는 5 초마다 Advertise 이벤트를 발생시키고 tope.aspx 페이지의 매개 변수로 'inNumber'를 전달하여 간단한 레이블 인 일부 레이블을 새로 고칩니다. CustomTimer는 타이머를 관리하기 위해 만든 클래스이며, 다른 클래스를 상속하지 않습니다 (검색에서 배운 것에 대해서는 httpthing을 상속해야하지만 잘 모르겠습니다). 나는 어느 시점에서 httpcontext가 손실되고있는 것으로 추측하고있다. (나는 구글에서 수색했는데 그 수명주기 또는 왜 그것이 죽었는지 알려주는 정보는 알 수 없다.) 문제가 무엇인지 알아내는 데 도움을 줄 수 있습니까?

감사

답변

0

귀하의 타이머가 술을 많이 마시다 페이지 클래스의 외부에 존재하지 않으므로이 페이지에서 응답이 완료된 후 타이머 이벤트를 발사하는 것으로 보인다과 HttpContext.Current 인스턴스가 더 이상 존재한다.

당신이하려는 것은 5 초마다 한 페이지가로드되면 페이지의 광고 배너를 변경하는 것입니다. 자바 스크립트 타이머를 사용하여이를 수행해야합니다. 자바 스크립트 타이머는 5 초마다 실행되며 웹 서버에 새로운 광고를 요청합니다.

+1

음, 알아 듣겠습니다. 것은 '새로 고침'의 시간은 데이터베이스에서 가져온 것입니다 그리고 그것은 심지어 데이터베이스에서 가져온 매개 변수를주는 페이지를 다시로드해야 할뿐만 아니라 런타임에 변경할 수 있습니다. Mi idea는 VB에서 모든 것을 관리했습니다. 단추를 클릭 한 다음 Respose.Redirect를 사용할 때 응용 프로그램과 마찬가지로 'HttpContext를 만드는'방법이 있습니까? 다른 옵션이 AJAX를 사용하는 것 같지만 Visual Studio 2003을 사용하고 있기 때문에 잘 지원되는지 잘 모르겠습니다. – user1428789

+0

HttpContext를 만들려고 할 수는 있지만 요청을 시작하지 않았기 때문에 응답은 사용자의 브라우저로 돌아 가지 않습니다. 귀하의 질문에있는 설명을 바탕으로, 나는 자바 스크립트는 당신이 광고를 새로 고칠 필요가 있다고 생각합니다. 그렇지 않은 경우 자세한 설명을 제공해야합니다. – slolife

관련 문제