Asp.net
ASP.NET Charting Control 在生產伺服器上不起作用
我有一個嚴重依賴圖表的應用程序,目前圖表將在 ASP.Net 開發伺服器中工作,但是當我嘗試發佈到我的伺服器(Win 2008 Server R2、IIS 7)時,圖表不顯示。
使用 Firebug,我可以看到對 ChartImg.axd 的呼叫返回 404,而我得到的只是 IE 中的空白圖像持有者,或者在 Firefox 中什麼都沒有。到目前為止,我已經搜尋了大約 3 或 4 個小時,並且幾乎嘗試了所有推薦的東西,但似乎沒有任何效果。
我想使用記憶體/HttpImageHandler,而不是 ImageLocation 配置。
我的網路配置
<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>有沒有人知道我會出錯以防止它在我的伺服器上執行?
我找到了問題的答案,但我相信我的問題特別源於我的程式碼執行方式。
一旦我
privateImages=false在 appSettings 下為 ChartImageHandler 設置,我的圖像就沒有問題了,使用帶有文件儲存的 ImageLocation 或帶有記憶體儲存的 HttpHandler。我查看了此處的清單,並意識到我的程式碼沒有以下內容:
- 驗證
- 會話ID
- 匿名ID
所以隱含的預設設置
privateImages=true讓我無法下載我的圖像。當我設置時,privateImages=false我沒有任何問題,並且圖表工作正常。我將我的應用程序設置為使用 Windows 身份驗證,並且privateImages=true現在正在使用 Image Location 設置或 HttpHandler 設置生成我的圖表。希望這會有所幫助。我知道我花了很長時間四處探勘,卻一無所獲。