0

一些背景信息:我正在尝试从运行在 ASP.NET 服务器上的线程(在 Appication_Start 中开始)发送包含许多图表的 HTML 电子邮件。

在最简单的形式中,我有以下代码,从服务器上运行的线程调用:

StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);

Chart c = new Chart();
c.RenderControl(hw); <-- NullReferenceException

调试信息:

      StackTrace:
           at System.Web.UI.DataVisualization.Charting.ChartHttpHandler.GetHandlerUrl()
           at System.Web.UI.DataVisualization.Charting.ChartHttpHandler.GetUrl(String query, String fileKey, String currentGuid)
           at System.Web.UI.DataVisualization.Charting.ChartHttpHandler.GetChartImageUrl(MemoryStream stream, String imageExt)
           ...

当我从任何 aspx 页面调用这段代码时,没有问题。同样为标签调用 RenderControl() 也没问题。

我怀疑在调用 Chart 对象的 RenderControl() 函数之前需要初始化一些变量,并且当从 aspx 页面调用此函数时,这些变量会自动到位。

那么我的问题是,RenderControl() 需要哪些变量/对象才能成功执行?

4

0 回答 0