Developer2012.09.28 17:24

Download MSChart Control Tool

http://www.microsoft.com/ko-kr/download/details.aspx?id=14422

 

기본 .Net 의 경우에 Web.config 구성하는 방법

http://msdn.microsoft.com/ko-kr/library/dd990785(v=vs.100)

 

Sharepoint 사용시에 Web.config 설정을 하지 않으면 아래와 같이 오류가 발생됩니다.

오류 내용은 아래와 같습니다.

 

요청 형식 ‘GET’에 대한 HTTP 처리기가 없습니다.

 

아래와 같이 Web.config 파일을 구성하셔야 합니다.

<configuration>
   ...
   <system.web>
      ...
      <httpHandlers>
         ...
         <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
         ...
      </httpHandlers>
      ...
   </system.web>
   ...
  <system.webServer>
    ...
    <handlers>
      ...
      <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      ...
    </handlers>
  ...
  </system.webServer>
  ...
  <appSettings>
    ...
    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\Temp\;"/>
    ...
  </appSettings>
</configuration>

 

그리고 IIS에 구성되어야 하는 부분이 있습니다.

appSettings에 설정한 dir 경로가 이미지 출력 경로입니다.

이 경로는 IIS에 가상경로로 설정해야 합니다.

 

 

그런 후 코드에서 ImageLocation을 해당 경로로 설정해 주셔야 합니다.

Chart chrtSalesData = new Chart();
chrtSalesData.ImageStorageMode = ImageStorageMode.UseImageLocation;

chrtSalesData.Legends.Add("Legend");
chrtSalesData.Width = 500;
chrtSalesData.Height = 300;
chrtSalesData.RenderType = RenderType.ImageTag;
string imagePath = "~/_layouts/ChartImg/";
chrtSalesData.ImageLocation = imagePath + "ChartPic_#SEQ(200,30)";
chrtSalesData.Palette = ChartColorPalette.Berry;

그런 후 해당 페이지를 보면 아래와 같이 정상적으로 이미지가 출력 되는 것을 확인 할 수 있습니다.

 

아래는 위의 이미지를 출력하는 코드입니다.

aspx, aspx.cs 코드 첨부하였습니다.

더보기

 

이상입니다.

감사합니다.

 


Posted by Angeleyes

Ask me를 이용하시면 댓글보다 빨리 답변 드릴 수 있습니다.

댓글을 달아 주세요