40


13

MSからDundasから購入した新しい無料チャートコントロールを使用しているときにこのエラーが発生する人はいませんか。

ChartImg.axdの子要求の実行中にエラーが発生しました

MSDNフォーラムで彼らはそれが私のweb.configであることを示唆した:http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/thread/1dc4b352-c9a5-49dc-8f35-9b176509faa1 / [MSDNフォーラムの投稿]

これまでのところ、問題は解決していません。 他のアイデア?

12 Answer


70


私は同じ問題に遭遇しました。チャートはあるページでは動作しますが、次のページでは動作しません。 チャートがPOSTで初めて初期化された場合(つまり、 ハンドラが正しく設定されていないため、エラーが発生します。 この問題を解決するには、POST Lapbを追加して、このトピックでユーザーLaptopHeavenが参照しているhttpHandler構成を変更します。

Scott Andersonがこのトピックの冒頭の投稿で言及したMSDNフォーラムの投稿で、なぜこのエラーが発生するのかについて、より徹底的な説明を書きました。


14


私はこのエラーに遭遇しましたが、私のweb.configファイルのsystem.web \ httpHandlerセクションに要素を追加することによってそれを修正しました。 私は以下を追加しました:



10


NET 4.0ではチャートが組み込まれていますが、それでも以下のようなタグを追加する必要があるかもしれません。


5


試してみてください(ChartImageHandlerキーにパスを忘れないでください)

...
...


...

...


5


また、ツールボックスからチャートコントロールをページにドラッグするとweb.configに必要なエントリが作成されることになっていますが、これは、その時点でデザインモードになっている場合にのみ発生します。

あなたがソースモードでドラッグアンドドロップしているなら、それは起こりません。

また、デザインモードでチャートコントロールを追加すると、プロジェクト/クラスファイルに何らかの登録方法が必要になります。 あなたがソースモードに入っていてチャートコントロールをdndしているなら、あなたは上記のようにweb.configのエントリーを得ないでしょう。 その後、デザインモードに入り、ツールボックスからページに移動すると、web.configにエントリが表示されます。

しかし、その後チャートを削除すると、デザインモードで削除したことになります。1つのページサイトを想定している場合でも、作成したページから他のチャートコントロールが表示されています。ソースモード

いいえ、あなたはそれがただ直感的ではないことに夢中ではありません。 ;)


3


この問題を解決する方法をMSDNフォーラムに投稿しました。

それでも、なぜ例外が発生したのかまだわかりませんが、回避策を見つけたようです。 私は実験的に問題のあるweb.configを取得し、それを新しいプロジェクトにコピーしました。そこで新しいWebフォームとチャートコントロールを追加し、チャートコントロールは "UseHttpHandler"オプションで問題なくレンダリングされました。 これは私の場合の問題であるのは実際にはweb.configではないと私に信じさせたので、元のプロジェクトに戻って実験として別のWebフォームにチャートを追加しました、そしてそれはうまくいきました! さらに驚くべきことに、その後、私は問題のあるページに行き、それも機能しました。 それから私は他のページから新しい図表を取り、元の問題のあるページをチェックし、そしてそれは再び壊れていました。 それから私は、問題のあるページの前の任意のページにチャートコントロールを配置するとうまくいくでしょう、そうでなければ例外を投げました。 これらのコントロールはとてもクールですが、問題のページのパスに追加する別のページを見つけるのに問題はありませんでした:)

これで問題は解決しましたが、もし誰かに何か理論があるのなら私が興味を持つのはなぜでしょうか。


1


これに関する詳細情報:

私はweb.configの問題にも問題を抱えており、Chartコントロールをページにドラッグアンドドロップしたときにweb.configがコードエディタで開かないようにすることで改善しました。 web.configがまだ開かれていない場合は、Visual Studio 2010によって適切な変更が加えられます。

私は正常にweb.configの問題を適用した後に「子実行要求を実行中のエラー」エラーをうまく乗り越えることができました。

MVCアプリケーションでの使用についても、私は自分のMVC 2アプリケーション(VS2010 / .NET 4)でこれを実装するのに苦労していて、別の問題にぶつかりました。

このページからChartImg.axdを呼び出すと、HTTP 404エラーが発生しました。 (私はこれをFiddlerを使って見つけました。)

ページが(ルートからの)/ChartImg.axdの代わりに/MyController/ChartImg.axdからハンドラにアクセスしようとしていたことがわかります。

Global.asax.csファイルに次の行を追加して問題を解決することができました。

routes.IgnoreRoute( "{コントローラ} / {リソース} .axd / {* pathInfo}");

Chart.ImageStorageModeプロパティを変更することに頼らなければならなかった何人かのユーザーにとって、これは問題であるかもしれません。


0


ただ、それは画像が見つからないというエラーに対する許可の問題でもあることを指摘したいだけでした。

あなたの画像フォルダに "変更を許可する"アクセス許可を設定します(デフォルトではあなたのウェブサイトが実行されているアカウントのための "C:\ TempImageFiles"です)。

問題は消えます。


0


webconfigに追加してください

verb = "GET、HEAD" path = "ChartImg.axd" type = "System.Web.UI.DataVisualization.Charting.ChartHttpHandler、System.Web.DataVisualization、バージョン= 3.5.0.0、カルチャ=ニュートラル、PublicKeyToken = 31bf3856ad364e35"

ありがとう

バサント


0


IIS 6.0(Server 2003)では、httpHandlerが存在しない場合にこのエラーが発生します(https://stackoverflow.com/questions/302820/net-3-5-chart-controls-exception-error-executing-child-request-を参照)。 for-chartimg-axd / 335363#335363 [前の回答])

スタックトレースを調べると、IIS 6.0はハンドラがロードされると想定しているようです。 ステートメントに対して実行を行い、例外が飲み込まれます。 IIS 6.0のhttpHandlersの下に次の属性(上記のとおり)を含めることで、これが修正されました。


バージョンを前回の回答から4.0.0.0に変更し、Server 2008(IIS 7.0)およびServer 2003(IIS 6.0)でテストしたことに注意してください。