我用asp.net写了一个Excel拷贝图表的程序,这个程序在我本地运行都没问题。但只要发布到Windows2003的服务器上就报0x800a03ec的错。程序代码如下:
private void CopyAndPasteChart(Sheet destSheet)
        {
            MSExcel.ChartObjects sourceCharts = (MSExcel.ChartObjects)sheet.ChartObjects(Missing.Value);
            int chartCount = sourceCharts.Count;
            if (chartCount < 1)
            {
                return;
            }
            for (int chartNum = 1; chartNum <= chartCount; chartNum++)
            {
                MSExcel.ChartObject sourceChart = (MSExcel.ChartObject)sourceCharts.Item(chartNum);
                sourceChart.Copy();
                destSheet.sheet.Paste(Missing.Value, Missing.Value);                MSExcel.ChartObject destChart = (MSExcel.ChartObject)destSheet.sheet.ChartObjects(chartNum);
                destChart.Top = sourceChart.Top;
                destChart.Height = sourceChart.Height;
                destChart.Left = sourceChart.Left;
                destChart.Width = sourceChart.Width;
                //修改目标sheet的公式连接
                MSExcel.SeriesCollection seriesCollection = (MSExcel.SeriesCollection)destChart.Chart.SeriesCollection(Missing.Value);
                int chartSeriesCount = seriesCollection.Count;
                for (int chartSeriesNum = 1; chartSeriesNum <= chartSeriesCount; chartSeriesNum++)
                {
                    MSExcel.Series chartSeries = seriesCollection.Item(chartSeriesNum);
                    //=SERIES(\"全天,话务量\",,D:\\ls\\PBXDaily\\result\\[HWPbx24Hour_2010-08-14.xls]图''\"!表!$B$4:$B$27,1)
                    Match m = Regex.Match(chartSeries.Formula, "=SERIES\\(.*,.*,'?(.*\\]).+!.+\\)");
                    if (m.Success)
                    {
                        chartSeries.Formula = chartSeries.Formula.Replace(m.Groups[1].Value, "");
                    }
                }
            }
        }
当执行到红色语句是就出错了。请问怎么解决这个问题。另外,补充一点。同样的程序写成Windows窗口程序的形式或网站发布在XP系统上就不会报错。这个错误非常诡异,请大家帮我看看。谢谢!