该进程无法使用System.Web.UI.DataVisualization.Charting访问文件错误

时间:2011-10-21 06:13:42

标签: asp.net charts

我使用System.Web.DataVisualization中的图表。

<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>
...
<asp:Chart ImageType="Png" runat="server" ID="chartStatComp" Palette="BrightPastel"
    ImageLocation="~/CRM/Reports/chartStatComp_#SEQ(100,10)" ImageStorageMode="UseImageLocation"
    Width="620" Height="300">
    <ChartAreas>
        <asp:ChartArea Name="MainChartArea">
        </asp:ChartArea>
    </ChartAreas>
    <Series>
        <asp:Series ChartArea="MainChartArea" ChartType="Pie" XValueType="String" YValueType="Int32"
            CustomProperties="DoughnutRadius=25, PieDrawingStyle=Concave, CollectedLabel=Other, MinimumRelativePieSize=20"
            XValueMember="StateDescription" YValueMembers="CNT" Legend="Legend" IsVisibleInLegend="true"
            IsValueShownAsLabel="true">
        </asp:Series>
    </Series>
    <Legends>
        <asp:Legend LegendStyle="Table" Name="Legend" Alignment="Near"
            TitleAlignment="Near">
            <CellColumns>
                <asp:LegendCellColumn Text="Color" ColumnType="SeriesSymbol" />
                <asp:LegendCellColumn Text="#LEGENDTEXT" ColumnType="Text" Alignment="TopLeft" HeaderText="State" />
                <asp:LegendCellColumn Text="#VAL" ColumnType="Text" Name="Cnt" Alignment="TopLeft"
                    HeaderText="Count" />
                <asp:LegendCellColumn Text="#PERCENT" ColumnType="Text" Name="Percentage" Alignment="TopLeft"
                    HeaderText="%" />
            </CellColumns>
        </asp:Legend>
    </Legends>
</asp:Chart>

大部分时间都运作良好。但有时候用户会得到例外:

System.IO.IOException: The process cannot access the file '~\Reports\chartStatComp_000001.png' because it is being used by another process.

它的发生非常罕见但确实如此。 有没有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:0)

请提供代码以进行更多分析。

但是此时可以假设在您尝试写入/读取时文件必须处于打开状态。它必须在极少数情况下发生,因为文件可能正在处理中,并且可能尚未完成其过程。你的代码执行速度足够快,可以进入这种类型的巧合。