我正在尝试通过.Net4.5 / MVC4应用程序实现 IChartStorageHandler ,以便在基于http://goo.gl/WAapl的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 :(得分:0)
您可以检查在system.web / httpHandlers下是否有ChartImageHandler的条目吗?如果是,那么请将其删除。
另外,它可能与此无关,但在web.config第1部分中,你不应该提到storage = file;以及它看起来像:
<add key="ChartImageHandler" value="storage=file;handler=MvcWebRole1.Codes.ChartImageHandler, MvcWebRole1; webDevServerUseConfigSettings=false;" />
答案 1 :(得分:0)
这可能是一个愚蠢的问题,但是当你试图在你的处理程序中找到一个断点时,你实际上是在打开一个包含ASP.NET Charts的页面吗?只有在加载图表时才会触发图表处理程序。
答案 2 :(得分:0)
也许你可以在创建类后立即启动调试器?
public ChartImageHandler()
{
System.Diagnostics.Debugger.Launch();
//throw new NotImplementedException();
}
更多http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.launch.aspx