ASP.NET Contrôle de graphique ne fonctionne pas sur le serveur de production
J'ai une application qui s'appuie fortement sur la cartographie et actuellement les cartes de travail dans la ASP.Net Serveur de Développement, mais lorsque j'essaie de publier sur mon serveur (Win 2008 Server R2, IIS 7), les graphiques ne s'affichent pas.
À l'aide de Firebug, je vois que l'appel à ChartImg.axd renvoie une erreur 404, et tout ce que j'obtiens est une image vide titulaire, c'est à dire, ou rien dans Firefox. J'ai cherché pendant environ 3 ou 4 heures, jusqu'à présent, et ont essayé à peu près tout recommandé, mais rien ne semble fonctionner.
Je voudrais utiliser de la mémoire/HttpImageHandler, au lieu de la ImageLocation de configuration.
De Mon Site Web.Config
<appSettings>
<!--<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />-->
<add key="ChartImageHandler" value="storage=memory;timeout=20;deleteAfterServicing=false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="ChartImageHandler" />
<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST"
path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
</system.webServer>
<system.web>
<httpHandlers>
<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false" />
</httpHandlers>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting"
assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</controls>
</pages>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<customErrors mode="Off"/>
</system.web>
Quelqu'un a une idée où je vais incorrect de continuer ce travail sur mon serveur?
Pas maintenant, fusioncharts.com/goodies/fusioncharts-free
OriginalL'auteur Adam | 2011-10-28
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse à mon problème, mais je crois que mon problème vient précisément de la façon dont mon code s'exécute.
Une fois que j'ai mis
privateImages=false
sous appSettings pour mon ChartImageHandler, mes images sont venus avec sans problème, à l'aide de ImageLocation avec stockage de fichiers ou de HttpHandler avec la mémoire de stockage.J'ai regardé la liste ici et réalisé que mon code n'a rien de la suite:
de manière implicite paramètre par défaut de
privateImages=true
m'empêchait de télécharger mes images. Lorsque j'ai misprivateImages=false
je n'ai eu aucun problèmes et les graphiques a fonctionné correctement. J'ai mis mon application pour utiliser l'Authentification Windows, et de définirprivateImages=true
et mes cartes sont maintenant générés avec l'Emplacement de l'Image réglage ou la HttpHandler réglage.J'espère que cela est utile. Je sais que j'ai passé beaucoup de temps à creuser autour et a obtenu nulle part.
OriginalL'auteur Adam
Cette configuration de travail pour moi. Vous avez besoin d'utiliser la mémoire comme espace de stockage.
Dans l'Application.Fichier de Config dans le <appSettings> section
Je pense que c'est la vraie réponse. Le problème semble être que si vous laissez le stockage avec sa valeur par défaut ("fichier"), le gestionnaire cherche à créer un fichier et de le servir au client. Si l'utilisateur n'est pas autorisé à créer des fichiers sur le serveur à l'emplacement spécifié dans ce char image de gestionnaire d'application, puis le tout échoue. Mais ce que nous voulez probablement, c'est pour le serveur pour créer l'image dans la mémoire et le nourrir pour le client à partir de là. Pas besoin de créer un fichier physique qui pénètre dans le fichier d'autorisation de questions.
OriginalL'auteur Kyaw Nyi Win
Il semble que la sécurité/problème d'autorisation. Vous économisez de graphiques pour le dossier local, puis d'attribuer l'autorisation d'écriture pour IIS utilisateur et/ou du réseau, les utilisateurs des services de ce dossier.
Essayez de créer des "tempimagefile' dossier sous IIS dossier et essayez d'accéder directement à partir du web comme "www.yourdomain.com/Tempimagefile/char.jpg" et voir si cela fonctionne. Ensuite, utilisez ce lieu dans votre page web.
Ou, changer la ChartImageHandler spécifications dans les paramètres de l'application pour créer l'image dans la mémoire plutôt que dans un fichier.
OriginalL'auteur dpac
Installer Microsoft Chart Controls sur votre serveur ou essayez ceci:
ASP.Net Tableau De Contrôle Sur L'Environnement D'Hébergement Partagé
Vérifiez également que le HttpHandler est enregistré dans le système.le serveur web de votre site web.config lors de l'exécution sous IIS 7.
OriginalL'auteur JamieSee
essayez ceci: changer de Version=4.0.0.0 Version=3.5.0.0
OriginalL'auteur shakizat
essayez cela, il a été résolu dans le cas de web.config erreur d'exécution
OriginalL'auteur JItendriya Sendha