2008-11-19 30 views

回答

70

我遇到了同樣的問題:圖表可以在一個頁面上工作,但不能在下一個頁面上工作。如果圖表在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論壇上發帖時出現此錯誤的更透徹的解釋斯科特·安德森在他的這個主題的開幕文章中提到。

+0

這就是答案,當您使用MVC時,您可以將所有處理程序添加到最外層網絡配置中。<。 – 2010-10-15 09:48:58

+0

+1:太棒了,謝謝! – 2010-10-19 22:23:47

3

我張貼的方式我固定在MSDN論壇這個問題:

嗯,我仍然不知道爲什麼,我居然也得到了異常,但我似乎已經找到了解決辦法。我做了一個實驗,我把應該得罪的web.config並將其複製到我添加了一個新的網絡形式和圖表控件和渲染精細與「UseHttpHandler」選項圖表控件的新項目。這導致我相信它實際上並不是web.config,這是我的情況,所以我回到原始項目並添加了一個圖表作爲實驗的另一個Web表單,並且它工作正常!更令人驚訝的是,在那之後,我去了冒犯的頁面,它也起作用了!然後,我從另一頁上取下新圖表,並檢查了原來的違規頁面,並再次打破。然後,我發現如果我在冒犯頁面之前在任何頁面上放置圖表控件,它將起作用,否則會拋出異常。這些控件是太酷了,雖然我沒有一個問題,找到另外一個頁面放一個在違規網頁:)

這解決了這一問題,但如果任何人有任何的理論,爲什麼我會有興趣的路徑...也許是一個錯誤?

14

我遇到了這個錯誤,但通過添加元素對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" /> 
+0

我應該被允許了投票不止一次這更多...完美的解決方案,由於一噸! – ChrisHDog 2008-12-24 09:31:28

+0

在我的web.config中已經有了該標記,但需要知道將其重定位到(system.web \ httpHandlers)的位置。謝謝。 – kad81 2014-01-15 21:42:22

0

只是想指出的是,它也是一個權限問題與圖像未找到錯誤。

設置「允許修改」的權限在您的圖像文件夾(每默認爲「C:\ TempImageFiles」。爲您的網站在其下運行的帳戶

問題消失

0

請添加它在webconfig中

add verb =「GET,HEAD」path =「ChartImg.axd」type =「System.Web.UI.DataVisualization.Charting.ChartHttpHandler,System.Web.DataVisualization,Version = 3.5.0。0,文化=中性公鑰= 31bf3856ad364e35"

感謝

Basanth

1

在此更多信息:

我是有在web.config問題的麻煩,以及和糾正通過確保當我將Chart控件拖放到頁面上時,web.config未在代碼編輯器中打開。如果web.config尚未打開,Visual Studio 2010將進行適當的修改。

我能夠成功在成功應用web.config問題後,sfully經過了「執行錯誤的子請求」錯誤。另外關於在MVC應用程序中的使用,我一直在努力在我的MVC 2應用程序(VS2010/.NET 4)中實現這個功能,並且遇到了另一個問題。

頁面對ChartImg.axd的調用導致HTTP 404錯誤。 (我發現這使用提琴手。)

原來,頁面試圖從/MyController/ChartImg.axd而不是/ChartImg.axd(從根目錄)訪問處理程序。

我能夠加入這一行到我的Global.asax.cs文件來解決這個問題:

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

這可能是一些用戶的問題,誰不得不求助於改變Chart.ImageStorageMode屬性。

5

嘗試(不要忘記在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

在.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" /> 
0

在IIS 6.0(Server 2003)中,如果缺少httpHandler,則會發生此錯誤(請參閱Previous Answer

查看堆棧跟蹤,看起來IIS 6.0假定處理程序將會我被加載。它在語句上執行了一個Execute,並且異常被吞下。包括以下屬性(如上所示)在IIS 6.0中的httpHandlers下爲我解決了這個問題。

<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改變的版本和服務器2008(IIS 7.0)和Server 2003的測試(IIS 6.0)

0

另一個原因這個問題可能是因爲應用程序池被設置爲「經典」模式。我的處理程序配置正確,但我得到相同的錯誤。

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

只要我將應用程序池切換到「集成」模式。圖表控件開始正常工作。

4

另請注意,將圖表控件從工具箱拖動到頁面上時,應該在web.config中創建必要的條目,但這種情況只發生在,如果您當時處於設計模式。

如果您處於源代碼模式並拖放它不會發生。

而且,必須有某種形式的註冊,當您添加一個圖表控件在設計模式出現在項目/ class文件。因爲如果您處於源代碼模式並且使用圖表控件,則不會像上面那樣獲取web.config中的條目。如果您然後進入設計模式,並從工具箱進入頁面,您將在web.config中獲得條目。

但是,如果刪除圖表時,您在設計模式下進行了轉向,它將從web.config(假設單個頁面站點)擦除條目,即使您仍然在頁面上有其他圖表控件轉向源模式。

所以不,你不瘋了,它只是不直觀。 ;)

0

此問題已通過在webconfig中添加chatImageHandler解決。

<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

相關問題