ASP.NET

ASP.NET Chart Controls in einer Hosting-Umgebung einsetzen

Die kostenfreien Microsoft ASP.NET Chart Controls, die zum Teil auf den Dundas-Charts basieren, sollen ja mit der Version 4.0 Einzug in das .NET-Framework halten. Fein, aber was machen wir bis dahin? Ganz einfach: MSChart.exe herunterladen und installieren...

Das funktioniert allerdings bei einigen Providern nicht, da diese sich (aus verständlichen Gründen) schlicht weigern zusätzliche Software auf ihren Maschinen zu installieren. Es geht aber auch ohne Installation. Hier eine kleine Anleitung:

Assembly

Zuständig für die Erzeugung der Chart-Bilder ist die System.Web.DataVisualization.dll aus dem kostenfrei herunterladbaren Installationspaket MSChart.exe.

Wie im .NET-Framework üblich, schreibt das Setup-Paket alle beteiligten DLL's in den Global Assembly Cache. Aus diesem muss man nun erstmal o.g. Assembly herausfischen. Wie das am einfachsten funktioniert habe ich im Artikel GAC-Viewer unter Windows XP beschrieben.

Die DLL kopiert man einfach in das bin-Verzeichnis der Web-Anwendung.

web.config

Die Chart-Controls werden über die web.config dem Projekt bekannt gemacht. Dazu werden eingige neue Einträge benötigt:

<compilation debug="true">
	<assemblies>
		<add assembly="System.Web.DataVisualization, 
					   Version=3.5.0.0, Culture=neutral, 
					   PublicKeyToken=31BF3856AD364E35"/>
		...
<pages>
	<controls>
		<add tagPrefix="asp" 
			 namespace="System.Web.UI.DataVisualization.Charting" 
			 assembly="System.Web.DataVisualization, 
			 		   Version=3.5.0.0, Culture=neutral, 
			 		   PublicKeyToken=31bf3856ad364e35"/>
		...
<httpHandlers>
	<add path="ChartImg.axd" 
		 verb="GET,HEAD" 
		 type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, 
		 	   System.Web.DataVisualization, 
		 	   Version=3.5.0.0, Culture=neutral, 
		 	   PublicKeyToken=31bf3856ad364e35" 
		 validate="false"/>
	...		
<system.webServer>
	<handlers>
		<add path="ChartImg.axd" 
			 verb="GET,HEAD" 
			 type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, 
			 	   System.Web.DataVisualization, 
			 	   Version=3.5.0.0, Culture=neutral, 
			 	   PublicKeyToken=31bf3856ad364e35" 
			 validate="false"/>
	...		

Eine der wichtigsten Einstellungen in der web.config ist der physische Pfad, in dem die temporären Chart-Bilder erzeugt werden sollen:

<appSettings>
	<add key="ChartImageHandler" 
		value="storage=file;timeout=20;dir=C:\Projekte\Test\Temp\;"/>
	...

Wichtig ist, dass hier wirklich der voll klassifizierte Pfad auf der Platte eingetragen wird und der Worker-Process auf diesen schreibenden Zugriff erhält. In Hosting-Umgebungen ist man sehr oft über entsprechende Konfigurations-Webs in der Lage einen neuen Ordner zu erzeugen und ensprechend zu berechtigen, der als TEMP-Verzeichnis herhalten kann.

Allerdings ist nicht immer klar, wie man den physischen Pfad ermitteln soll. Über eine kleine Testseite ist dies jedoch kein Problem:

<%@ Page Language="VB" %>

<html>
    <head>
        <title>Root-Folder</title>
    </head>
    <body>
        <p><%=Server.MapPath("~/temp")%></p>    
    </body>
</html>

Im Beispiel habe ich den Temp-Order direkt im Root des Webs erzeugt und den Wert, den die Seite ausgeworfen hat in das value-Attribut des Settings eingetragen.

Beispiel-Chart

Hier ein Chart aus den WebSamples von Microsoft, zur Veranschaulichung, dass man es auf diese Weise auch beim Provider zum Laufen bekommt:

Links

kick it on dotnet-kicks.de AddThis Trackback-Url...

380 Kommentare bislang...

  • The information you shared through your post is functional. I admire your work. Wish you all the luck for all your blogging efforts.

    ------------------
    380
    writing a research proposal : Donnerstag, 23. Mai 2013 16:03
  • It's really pleasure to read your post. Thank you so much for writing such a nice post.
    ---------------------
    379
    the resistance : Sonntag, 19. Mai 2013 14:15
  • I went to the parlor and had buy human hair weave my front hair cut for a generous amount of bangs buy hair weave . I´ve a long hair so I was really looking for this brazilian hair weave exact look from the model above brazilian human hair weave. But hard as it is, my hair quality isn´t made for bangs. Just a day after the parlor cheap brazilian hair weave, it went back to being dry, wavy, and discarded. No amount of combing and gel could help.
    378
    11 : Sonntag, 19. Mai 2013 09:06
  • And as much as <a href="http://www.hairweavebest.com/curly-brazilian-hair-c-2_31.html">virgin brazilian curly hair weave</a> I trade in "I dont give a damn <a href="http://www.hairweavebest.com/brazilian-hair-c-2.html">brazilian weave extensions</a>" bravado, turning <a href="http://www.hairweavebest.com/brazilian-hair-c-2.html">cheap brazilian weave</a> chunks of your <a href="http://www.hairweavebest.com/brazilian-hair-c-2.html">cheap brazilian weave hair</a> colors favored by Lisa <a href="http://www.hairweavebest.com/straight-brazilian-hair-c-2_29.html">straight brazilian hair weave</a> and tweens is a one-way ticket to a lot of <a href="http://www.hairweavebest.com/brazilian-hair-c-2.html">100 brazilian hair weave</a> about who you are as a person.
    377
    11 : Sonntag, 19. Mai 2013 09:04


  • When off duty, they slept, exercised and sent video, audio, and written messages to their families, Lights shone from 7,30am rosetta stone french until 10pm, mimicking daylight, Urzua used the bonnet of a mine vehicle as his desk, and sent up maps,He wrote for each of the men an official job description.


    376
    rosetta stone french : Samstag, 18. Mai 2013 10:43

Dein Kommentar hierzu...


Kommentar-Feed für diesen Beitrag
Gravatare werden unterstützt .:. eMail-Adressen werden nicht veröffentlicht
 

RSS-Feed

Die URL des Standard-Newsfeed von zerbit.de lautet:

http://www.zerbit.de/rssfeed.aspx

Login


 

 

Statistik



kürzlich kommentiert

Artikel 289

  • Datum: 27.07.2009
    Kategorie: ASP.NET
    Zugriffe: 22.607
    Kommentare: 380
    Trackbacks: 0

Letzte Beiträge

Kategorien

Buttons & More

Blog-Roll

Banner Piraten-Partei