0

http://goo.gl/WAaplに基づいてAzureで使用するために.Net4.5/MVC4アプリケーションを介してIChartStorageHandler実装しようとしています

以下のクラスで設定したブレークポイントのいずれにもヒットできませんでした。だから私の質問は、「それを強制するために使用できるトリックはありますか?」です。ありがとうございました!

パラメータの詳細については、 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;
    }
}
4

3 に答える 3

0

system.web / httpHandlersの下にChartImageHandlerのエントリがあるかどうかを確認できますか?はいの場合は、削除してください。

また、これとは関係がないかもしれませんが、web.configパート#1では、storage=fileについて言及するべきではありません。同様にそれを次のように見せるために:

<add key="ChartImageHandler" value="storage=file;handler=MvcWebRole1.Codes.ChartImageHandler, MvcWebRole1; webDevServerUseConfigSettings=false;" /> 
于 2013-02-18T00:32:35.367 に答える
0

おそらく、クラスが作成されたらすぐにデバッガーを起動できますか?

public ChartImageHandler()
{
    System.Diagnostics.Debugger.Launch();
    //throw new NotImplementedException();
}

詳細はhttp://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.launch.aspxを参照してください

于 2013-02-28T13:55:00.410 に答える
0

これはばかげた質問かもしれませんが、ハンドラーでブレーク ポイントに到達しようとしているときに、ASP.NET チャートを含むページを実際に開いているのでしょうか? Chart ハンドラーは、チャートが読み込まれているときにのみヒットします。

于 2013-02-18T08:38:41.273 に答える