2008-11-19 11 views

Respuesta

70

me encontré con el mismo problema: el gráfico trabajaría en una página, pero no en el siguiente. Resulta que si el gráfico se inicializa por primera vez en un POST (es decir, una devolución de datos) se produce el error porque el controlador está configurado incorrectamente. Para solucionar el problema de modificar la configuración HTTPHandler ese usuario LaptopHeaven se hace referencia en este tema añadiendo el verbo POST:

<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" /> 

He escrito una explicación más detallada de por qué se produce este error en el mensaje en el foro de MSDN que Scott Anderson referido en su primer post de este tema.

+0

Esta es la respuesta, haz que añadas todos tus controladores a la configuración web más externa cuando usas también MVC>. < –

+0

+1: ¡Impresionante, gracias! –

3

he publicado una manera me fijo este problema en el foro de MSDN:

Bueno, yo todavía no sé por qué me estaba poniendo la excepción, pero me parece haber encontrado una solución. Hice un experimento en el que tomé el supuesto web.config ofensivo y lo copié en un nuevo proyecto donde agregué un nuevo formulario web y control de gráfico y el control de gráfico se procesó bien con la opción "UseHttpHandler". Esto me llevó a creer que en realidad no era el problema de la configuración web. En mi caso, volví al proyecto original y agregué un gráfico a otro formulario web como experimento, ¡y funcionó! ¡Aún más sorprendente fue que después de eso fui a la página ofensiva y también funcionó! Luego saqué el nuevo gráfico de la otra página y verifiqué la página ofensiva original y se rompió nuevamente. Luego descubrí que si pongo un control de gráfico en cualquier página antes de la página ofensiva, funcionaría, de lo contrario arrojó la excepción. Estos controles son tan geniales que no tuve problemas para encontrar otra página para poner en el camino de la página ofensiva :)

Esto solucionó el problema, pero si alguien tiene alguna teoría, ¿por qué me interesaría? ... tal vez un error?

14

Me encontré con este error, pero para corregirlo agregué un elemento a la sección system.web \ httpHandler de mi archivo web.config. He añadido el siguiente:

<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" /> 
+0

i debería permitirse a Answer más de una vez ... solución perfecta, gracias una tonelada! – ChrisHDog

+0

Ya tenía esa etiqueta en mi web.config, pero necesitaba saber dónde ubicarla (system.web \ httpHandlers). Gracias. – kad81

0

Solo quería señalar que también es un problema de permiso con el error de imagen no encontrada.

Establecer la opción "Permitir modificar" los permisos en la carpeta de la imagen (por defecto es "C: TempImageFiles \".. Para la cuenta en la que su sitio web está funcionando

problema desaparece

0

favor Añádelo en webconfig

add verb = "GET, HEAD" path = "ChartImg.axd" type = "System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version = 3.5.0.0 cultural = punto muerto PublicKeyToken = 31bf3856ad364e35"

Gracias

Basanth

1

Más información sobre este:

yo estaba teniendo problemas con las cuestiones web.config, así y subsana ese asegurando web.config no estaba abierto en el editor de código cuando arrastré y solté el control Chart en la página. Si web.config aún no estaba abierto, Visual Studio 2010 haría las modificaciones apropiadas.

Tuve éxito Completamente obtener el error "error al ejecutar solicitud de niño" después de aplicar con éxito los problemas de web.config.

También con respecto al uso en una aplicación MVC, estaba luchando para implementar esto en mi aplicación MVC 2 (VS2010/.NET 4) y encontré otra solución.

La llamada de la página a ChartImg.axd daba como resultado un error HTTP 404. (Encontré esto usando Fiddler.)

Resulta que la página intentaba acceder al controlador desde /MyController/ChartImg.axd en lugar de /ChartImg.axd (desde la raíz).

que era capaz de solucionar el problema agregando esta línea a mi archivo Global.asax.cs:

routes.IgnoreRoute("{controller}/{resource}.axd/{*pathInfo}"); 

Esto podría haber sido el problema para algunos usuarios que tuvo que recurrir a la evolución de la Chart.ImageStorageMode propiedad.

+0

Este fue de hecho mi problema. Inicialmente verifiqué si se estaba ignorando .axd y, curiosamente, lo era, como es el predeterminado para los proyectos ASP.NET MVC. PERO no tenía la porción "{controller}" de la ruta. Después de que agregué el tuyo, se resolvió el problema y se generaron mis gráficos. –

+0

@CarlHancke Me alegro de que haya ayudado. – RunnerRick

5

intento (no te olvides camino en clave ChartImageHandler)

<appSettings> 
    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" /> 
</appSettings> 

<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" /> 
... 
</httpHandlers> 

<handlers> 
... 
    <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 

... 
</handlers> 
10

En .NET 4.0 las tablas vienen incorporadas, pero todavía puede ser necesario añadir la etiqueta similar abajo:

<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" /> 
+0

¡Genial! ¡Gracias una tonelada! – Legend

0

En IIS 6.0 (Server 2003), este error se producirá si falta httpHandler (consulte Previous Answer)

Al examinar el seguimiento de la pila, aparece que IIS 6.0 asume que un controlador wil Estoy cargado. Hace una ejecución en la declaración y se traga la excepción. Incluir el siguiente atributo (como se muestra arriba) en httpHandlers en IIS 6.0 solucionó esto por mí.

<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 

Tenga en cuenta que he cambiado la versión de la respuesta anterior a 4.0.0.0 y probado en Server 2008 (IIS 7.0) y Server 2003 (IIS 6.0)

0

Otra causa de este problema puede ser debido a que la el grupo de aplicaciones está configurado en modo 'Clásico'. Mi controlador se configuró correctamente, pero estaba recibiendo el mismo error.

<add name="ChartImg" verb="*" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 

Tan pronto como cambié el grupo de aplicaciones al modo "Integrado". El control de gráfico comenzó a funcionar correctamente.

4

También tenga en cuenta que al arrastrar el control de gráfico desde la caja de herramientas a su página se supone que debe crear las entradas necesarias en web.config, esto solo ocurre si está en modo de diseño en ese momento.

Si está en el modo fuente y arrastra y suelta, no sucederá.

Además, debe haber algún tipo de registro que se produce en el archivo de proyecto/clase cuando agrega un control de gráfico en modo de diseño. Porque si estás en modo fuente y tienes un control de gráfico, no obtendrás las entradas en web.config como se indica arriba. Si luego ingresa en el modo de diseño y va desde la caja de herramientas a la página, obtendrá las entradas en web.config.

Pero si luego borra el gráfico, en el modo de diseño, borrará las entradas de web.config (asumiendo un solo sitio de página) aunque todavía tenga el otro control de gráfico en la página de cuando yendo al modo de fuente.

Así que no, no estás loco, simplemente no es intuitivo. ;)

0

Este problema se resolvió agregando chatImageHandler en el webconfig.

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <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> 

para más detalles: http://www.infinetsoft.com/Post/-Solved-Error-executing-child-request-for-ChartImg-axd/1164#.VyenrNJ97cs

Cuestiones relacionadas