2012-09-03 3 views
0

한 세션에서 생성 된 차트에 액세스해야하는 요구 사항이 있습니다. 설명하기 위해.Net 다른 세션에서 생성 된 차트 생성 액세스 이미지

는, 프로세스 A는 이미지 URL과 도표를 포함 일부 HTML을 생성 /ChartImg.axd?i=chart_0_0.png & g = a40f233f40fb4995b737d284f83ab1b7

내가 deleteAfterServicing = 거짓과 DIR = C를이 : \, 그리고 내가 c : \ chart_0_0.png를 보면 거기에 있습니다.

이제 이미지 처리기가 생성 된 세션의 차트에만 액세스 할 수 있기 때문에 (자체 세션에서 실행되는) 프로세스 B가 HTML 파일을 열면 차트 404가 열립니다.

이 동작을 사용하지 않도록 설정할 방법이 있습니까?

나는 다음을 수행하여 그것을 해결 그래서 내가

답변

0

확인 답장을 기다리겠습니다 :

다음
Public Overrides Sub RenderControl(writer As System.Web.UI.HtmlTextWriter) 

     If Me.RenderToFile Then 
      'Save it to a file first 
      Me.SaveImage(HttpContext.Current.Server.MapPath(RenderToFileLocation), 
         ChartImageFormat.Png) 
      'Return the image urn 
      writer.Write("<img src=""" & Url.Content(ConfigurationManager.AppSettings("ChartFilePath")) & "?c=" & Url.Content(RenderToFileLocation) & """ />") 
     Else 
      MyBase.RenderControl(writer) 
     End If 
    End Sub 

에서 거기 생성을 반환하는 간단한 .NET MVC 핸들러 파일을 삭제하고 삭제했습니다. Function 색인 (ByVal c As String)으로 작업 결과

 Dim dir = Server.MapPath(ConfigurationManager.AppSettings("ChartFilePath")) 
     Dim filepath = System.IO.Path.Combine(dir, c) 
     Index = MyBase.File(filepath, "image/png") 

     'Delete the file 
     Try 
      IO.File.Delete(filepath) 
     Catch ex As Exception 

     End Try 
    End Function