2013-02-17 72 views
0

我試圖實現IChartStorageHandler通過.Net4.5/MVC4應用基於http://goo.gl/WAaplIChartStorageHandler實現,處理程序不會觸發

我不能夠能打到無斷點在Azure上使用我在下面的課上設置。所以我的問題是,「有什麼技巧可以用來強制它嗎?」謝謝!

你可以在http://msdn.microsoft.com/en-us/library/dd456629.aspx

namespace MvcWebRole1.Codes 
{ 
    public class ChartImageHandler : IChartStorageHandler 
    { 

     public ChartImageHandler() 
     { 
      throw new NotImplementedException(); 
     } 

     #region IChartStorageHandler Members 

     public void Delete(string key) 
     { 
      throw new NotImplementedException(); 
     } 

     public bool Exists(string key) 
     { 
      throw new NotImplementedException(); 
     } 

     public byte[] Load(string key) 
     { 
      throw new NotImplementedException(); 
     } 

     public void Save(string key, byte[] data) 
     { 
      throw new NotImplementedException(); 
     } 

     #endregion 

    } 
} 

的web.config部分#1

<appSettings> 
    <add key="ChartImageHandler" value="handler=MvcWebRole1.Codes.ChartImageHandler, MvcWebRole1; webDevServerUseConfigSettings=false;" /> 
    </appSettings> 

web.config中的一部分#2

<system.webServer> 
    <handlers> 
     <remove name="ChartImageHandler"/> 
     <add name="ChartImageHandler" 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" preCondition="integratedMode" /> 
    </handlers> 
    </system.webServer> 

控制器

找到有關的詳細參數
public ActionResult ChartImage() 
{ 
    // get data 
    string path = HttpContext.Server.MapPath("~/App_Data/Test.csv"); 
    IEnumerable<Bar> data = BarRepository.Get(path); 

    // generate chart 
    byte[] chartResult = data.Generator(); 

    // return the chart 
    return File(chartResult, "image/png"); 
} 

public static class ChartOperations 
{ 
    private static Chart _chart1; 

    public static byte[] Generator(this IEnumerable<Bar> data) 
    { 
     // initial variable tasks 
     _chart1 = new Chart() {DataSource = data.ToList()}; 

     // generate the chart 
     DoTheHardWork(); 

     // save chart to memory string 
     var image = new MemoryStream(); 
     _chart1.SaveImage(image); 
     var result = image.GetBuffer(); 

     return result; 
    } 
} 
+0

你是如何調用類?撥打電話的線路上是否有斷點? – 2013-02-26 20:30:53

+0

從控制器調用它,並且它確實如此。 – cilerler 2013-02-27 00:25:43

+0

你能提供我們的控制器代碼嗎? – 2013-02-27 18:43:26

回答

0

你可以檢查一下system.web/httpHandlers下的ChartImageHandler嗎?如果是的話,請刪除它。

此外,它可能不涉及這個,但在你的web.config部分#1,你不應該提及storage = file;還有,以使它看起來像:

<add key="ChartImageHandler" value="storage=file;handler=MvcWebRole1.Codes.ChartImageHandler, MvcWebRole1; webDevServerUseConfigSettings=false;" /> 
+0

不,我沒有。不,不應該是這樣,因爲我想使用處理程序而不是存儲。處理程序應該提供詳細信息。 (我可以使用雲緩存,blob等) – cilerler 2013-02-18 03:08:16

0

這可能是一個愚蠢的問題要問,但是當你試圖打在你的處理器一個破發點,你實際上是打開一個頁面,其中包括ASP.NET圖表?只有在加載圖表時,圖表處理程序纔會被擊中。

+0

使用MVC並在控制器上創建圖表。只要我調用圖表控制器,它應該調用處理程序。沒有什麼與位置設置不同,如果你設置它,它應該工作,即使你沒有頁面控制。 – cilerler 2013-02-18 12:38:53

相關問題