Cum am spus, am trecut www.infovalutar.ro de la asp.net 1.1 la ASP.NET MVC.Trecerea nu a fost usoara, si inca sunt citeva lucruri de facut.
Totusi una din probleme care mi-a dat de furca a fost ca ChartImage , la refresh, nu se mai afisa. Foloseam asta la afisarea grafica a datelor cursurilor, de ex. http://infovalutar.ro/bnr/graphic/usd
Bun … problema era ca stergea fisierul png generat. Am pus “deleteAfterServicing “ la false * si o sa le sterg in momentul in care generez cursurile.
Totusi, mai aveam o problema . Daca accesam site-ul cu Firefox si dadeam refresh, se vedea. Dar aceeasi pagina , cu IE 7 , nu mai afisa – desi in codul HTML generat codul de la AXD era ACELASI, IMAGINEA era pe hard …
Dupa mai multe cautari am dat de pagina asta, http://blogs.msdn.com/deliant/archive/2008/12/02/managing-chart-generated-images-with-chart-image-handler.aspx care are TOATE setarile si ma dat de privateImages … L-am pus la false si gata!
Rezumat : pentru a folosi ChartImage cu succes cu IIS 7 aveti nevoie de 3 setari:
<appSettings>
<add key="ChartImageHandler" value="storage=file;privateImages=false;timeout=600;dir=….;deleteAfterServicing=false;" />
</appSettings>
A doua in httphandlers
<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" />
A treia in 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" />
Si, bineinteles, daca hostingul nu a instalat inca controalele, sa puneti din references System.Drawing si System.Web.DataVisualization “Copy local” la true – ca sa le aveti in bin
Succes!