2013-06-11 3 views
0

캐시 매니페스트를 사용하여 웹 응용 프로그램을 오프라인으로 액세스 할 수있게하고 있습니다. SQL Server 데이터베이스에 연결하는 기능을 추가하기 전까지는 모두 잘 작동합니다 (web.config에없는 코드에 저장된 연결 문자열 사용). 이 페이지는 이미지 나 다른 리소스가없는 간단한 빈 테스트 페이지입니다. 어떻게 든 데이터베이스 연결이 작동을 멈추고 있습니다. 이전에는 작동 했었지만 (데이터베이스 연결이 있더라도) 멈추었습니다. ...SQL Server에서 읽을 때 캐시 매니페스트가 작동하지 않습니다.

CODE (page_load 만 해당 ... 페이지의 다른 항목 없음) 페이지에서 ' tryit2.aspx '

protected void Page_Load(object sender, EventArgs e) 
    { 
      //open connections 
      oConn = new SqlConnection(); 
      oConn.ConnectionString = _connectionString; 
      oConn.Open(); 

      ////----FETCH SUBCAT PRODS FROM DB 
      _currentDT = new DataTable(); 

      SqlDataReader sqlDR2 = this.executeSQLcommand_returnDataReader(oConn, loadMenu, true, null); 
      _currentDT = new DataTable(); 
      _currentDT.Load(sqlDR2); 
      sqlDR2.Dispose(); 

      //dynamically create the cache manifest file 
      string appPath = Request.PhysicalApplicationPath; 
      string filePath = appPath + "cache.manifest"; 
      StreamWriter w; 
      w = File.CreateText(filePath); 

      w.WriteLine("CACHE MANIFEST"); 
      w.WriteLine("CACHE:"); 

      w.WriteLine("tryit2.aspx"); 

      w.WriteLine("NETWORK:"); 
      w.WriteLine("*"); 

      //closing the streamwriter 
      w.Flush(); 
      w.Close(); 
} 

그 이유는 무엇입니까?

+0

코드는 어디에 있습니까? – robertc

+0

이 게시물을 업데이트했습니다 ... 도움이 되나요? 감사합니다 :) –

답변

0

동적으로 매니페스트를 생성하는 경우 파일이 실제로 변경되지 않은 경우 304 Not Modified (see step 7)으로 응답해야합니다. 그렇지 않으면 (24 단계에서) 전체 캐시가 다시 다운로드됩니다 브라우저가 캐시를 인스턴스화하는 동안 업데이트되지 않았 음을 확인하기 위해 매니페스트 파일에 대한 두 번째 요청을 할 때. 브라우저가 매니페스트 자체를 캐시하지 않도록 매니페스트 URL에 만료 헤더를 설정하는 것도 중요합니다.

+0

감사합니다 로버트 ... 그럼 왜 데이터베이스 연결이 실패의 원인이됩니까? 여기서는 캐시 매니페스트를 업데이트하지 않지만 아직 존재하지 않는 곳에서 처음부터 만드는 중입니다 ... 페이지가 생성되면 캐시 된 버전을로드하지 않을까요? –

+0

나 또한 매니페스트 항목을 직접 입력하여 캐시 매니페스트를 정적으로 정의하려고 시도했지만 여전히 데이터베이스 연결이있을 때 작동하지 않습니다 –

+0

@JeanPaulGalea 요청 헤더를 확인하십시오 – robertc

관련 문제