从服务器调用时,RenderControl会导致NullReferenceException

时间:2013-03-20 20:45:08

标签: c# asp.net asp.net-4.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页面调用这段代码时,没有问题。同时为Label调用RenderControl()也没问题。

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

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

0 个答案:

没有答案