Исключение элементов управления диаграммой .NET 3.5: Ошибка выполнения дочернего запроса для ChartImg.axd - PullRequest
40 голосов
/ 19 ноября 2008

Кто-нибудь получал эту ошибку при использовании нового бесплатного графического элемента управления MS, купленного у Dundas?

"Ошибка выполнения дочернего запроса для ChartImg.axd"

На форуме MSDN они предположили, что это мой web.config: Сообщение на форуме MSDN

Пока что это не решило проблему. Есть другие идеи?

Ответы [ 12 ]

70 голосов
/ 13 января 2009

Я столкнулся с той же проблемой: график будет работать на одной странице, но не на следующей. Оказывается, если диаграмма инициализируется впервые в POST (то есть обратной передаче), выдается ошибка, потому что обработчик настроен неправильно. Чтобы устранить эту проблему, измените конфигурацию httpHandler, на которую ссылается пользователь LaptopHeaven в этом разделе, добавив глагол 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" />

Я написал более подробное объяснение того, почему эта ошибка возникает в сообщении на форуме MSDN, о котором Скотт Андерсон упомянул в своем первом сообщении по этой теме.

14 голосов
/ 02 декабря 2008

Я столкнулся с этой ошибкой, но чтобы исправить ее, добавив элемент в раздел system.web \ httpHandler моего файла web.config. Я добавил следующее:

<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" />
10 голосов
/ 29 марта 2011

В .NET 4.0 диаграммы поставляются встроенными, но вам все еще может потребоваться добавить аналогичный тег ниже:

<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" />
5 голосов
/ 14 марта 2012

Также обратите внимание, что при перетаскивании элемента управления диаграммой из панели инструментов на вашу страницу должны создаваться необходимые записи в web.config, это происходит только , если вы находитесь в режиме разработки в то время.

Если вы находитесь в режиме источника и перетаскиваете его, это не произойдет.

Кроме того, должна быть некоторая форма регистрации, которая происходит в файле проекта / класса, когда вы добавляете элемент управления диаграммы в режиме разработки. Потому что, если вы находитесь в исходном режиме и не используете элемент управления диаграммы, вы не получите записи в web.config, как указано выше. Если вы перейдете в режим разработки и перейдете с панели инструментов на страницу, вы получите записи в файле web.config.

Но если затем удалить диаграмму, которую вы удалили в режиме разработки, она сотрет записи из web.config (при условии, что сайт содержит одну страницу), даже если у вас все еще есть другой элемент управления диаграммой на странице, когда вы выполняете в исходный режим.

Так нет, ты не сумасшедший, это просто не интуитивно понятно. ;)

5 голосов
/ 18 марта 2011

try (не забывайте путь в ключе 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>
3 голосов
/ 21 ноября 2008

Я опубликовал способ исправления этой проблемы на форуме MSDN:

Ну, я все еще не знаю, почему я получил исключение, но я, кажется, нашел обходной путь. Я провел эксперимент, в котором я взял предполагаемый нарушающий web.config и скопировал его в новый проект, где я добавил новую веб-форму и элемент управления диаграммой, а элемент управления диаграммой хорошо отрисовался с опцией «UseHttpHandler». Это заставило меня поверить, что в моем случае проблема заключалась не в web.config, поэтому я вернулся к первоначальному проекту и добавил в качестве эксперимента диаграмму в другую веб-форму, и это сработало! Еще более удивительным было то, что после этого я зашел на страницу обидчика и это тоже сработало! Затем я снял новый график с другой страницы и проверил исходную страницу, которая его обидела, и она снова сломалась. Затем я узнал, что если я поместил элемент управления диаграммой на какую-либо страницу перед страницей-нарушителем, это сработает, в противном случае возникнет исключение. Эти элементы управления настолько круты, что у меня не было проблем с поиском другой страницы, чтобы поместить ее в путь страницы, которая нарушала работу:)

Это решило проблему, но если у кого-то есть теория, почему я был бы заинтересован ... может быть, ошибка?

1 голос
/ 22 июля 2010

Больше информации об этом:

У меня тоже были проблемы с web.config, и я исправил это, убедившись, что web.config не был открыт в редакторе кода, когда я перетаскивал элемент управления Chart на страницу. Если web.config еще не был открыт, Visual Studio 2010 внесет соответствующие изменения.

Мне удалось успешно преодолеть ошибку «ошибка выполнения дочернего запроса» после успешного применения проблем web.config.

Также касательно использования в приложении MVC, я изо всех сил пытался реализовать это в своем приложении MVC 2 (VS2010 / .NET 4) и столкнулся с другой ошибкой.

Вызов страницы ChartImg.axd привел к ошибке HTTP 404. (Я нашел это с помощью Fiddler.)

Оказывается, страница пыталась получить доступ к обработчику из /MyController/ChartImg.axd вместо /ChartImg.axd (из корня).

Мне удалось решить проблему, добавив эту строку в мой файл Global.asax.cs:

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

Это могло быть проблемой для некоторых пользователей, которым пришлось прибегнуть к изменению свойства Chart.ImageStorageMode.

0 голосов
/ 02 мая 2016

Эта проблема была решена путем добавления chatImageHandler в 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>

для более подробной информации: http://www.infinetsoft.com/Post/-Solved-Error-executing-child-request-for-ChartImg-axd/1164#.VyenrNJ97cs

0 голосов
/ 20 июля 2011

Другая причина этой проблемы может заключаться в том, что пул приложений установлен в «классический» режим. Мой обработчик был настроен правильно, но я получаю ту же ошибку.

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

Как только я переключил пул приложений в «Интегрированный» режим. Элемент управления диаграммы начал работать правильно.

0 голосов
/ 23 июня 2011

В IIS 6.0 (Server 2003) эта ошибка возникает, если отсутствует httpHandler (см. Предыдущий ответ )

При просмотре трассировки стека выясняется, что IIS 6.0 предполагает загрузку обработчика. Он выполняет Execute в операторе, а исключение проглатывается. Включение следующего атрибута (как показано выше) в httpHandlers в IIS 6.0 исправило это для меня.

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

Обратите внимание, что я изменил версию с предыдущего ответа на 4.0.0.0 и протестировал в Server 2008 (IIS 7.0) и Server 2003 (IIS 6.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...