TheRedEye Ответов: 0

Asp.net управление диаграммой не визуализируется последовательно


У меня есть ситуация в приложении webforms, использующем элемент управления Chart, где диаграмма часто отображается как сломанное изображение и только иногда отображается правильно. Это происходит только после того, как я публикую приложение на хост-сервере, оно всегда отлично отображается в моей локальной среде разработки.

Я опубликовал демо-версию здесь Вы увидите, что при каждом обновлении страницы диаграммы иногда будут отображаться, а иногда нет. Я что-то упускаю? Это проблема с моим хостинг-провайдером?

<appsettings> 
      <!--<add key="ChartImageHandler" value="storage=memory;deleteAfterServicing=true;">-->
  <add key="ChartImageHandler" value="storage=session;timeout=60;privateImages=false;">


<form id="form1" runat="server">
        <asp:Button ID="btnPostBack" runat="server" Text="Do Postback" OnClick="btnPostBack_Click" />

        <table>
            <tbody><tr>
                <td>Bind On PageLoad
                    <asp:Chart ID="Chart1" runat="server">
                        <series>
                            <asp:Series Name="Series1" Color="LimeGreen">
                        
                        <chartareas>
                            <asp:ChartArea Name="ChartArea1">
                        
                    
                </td>
                <td>Bind On Postback
                    <asp:Chart ID="Chart2" runat="server">
                        <series>
                            <asp:Series Name="Series1" Color="Brown">
                            
                        
                        <chartareas>
                            <asp:ChartArea Name="ChartArea1">
                            
                        
                    
                </td>
                <td>Bind On PageLoad EnableViewState is TRUE
                    <asp:Chart ID="Chart3" runat="server" EnableViewState="True">
                        <series>
                            <asp:Series Name="Series1" Color="Goldenrod">
                            
                        
                        <chartareas>
                            <asp:ChartArea Name="ChartArea1">
                            
                        
                    
                </td>
                <td>Bind On Postback EnableViewState is TRUE
                    <asp:Chart ID="Chart4" runat="server" EnableViewState="True">
                        <series>
                            <asp:Series Name="Series1">
                            
                        
                        <chartareas>
                            <asp:ChartArea Name="ChartArea1">
                            
                        
                    
                </td>
            </tr>
        </tbody></table>
    </form>


protected void Page_Load(object sender, EventArgs e)
{
    BindChart(Chart1);
    BindChart(Chart3);
}


protected void btnPostBack_Click(object sender, EventArgs e)
{
    BindChart(Chart2);
    BindChart(Chart4);
}

private void BindChart(System.Web.UI.DataVisualization.Charting.Chart chrt)
{

    List<chartitem> chartPoints = new List<chartitem>();
    chartPoints.Add(new ChartItem("One", 1));
    chartPoints.Add(new ChartItem("Two", 2));
    chartPoints.Add(new ChartItem("Three", 3));

    chrt.Series[0].XValueMember = "XValue";
    chrt.Series[0].YValueMembers = "YValue";
    chrt.DataSource = chartPoints;
    chrt.DataBind();
}

public class ChartItem
{
    public string XValue { get; set; }
    public double YValue { get; set; }
    public ChartItem(string x, double y)
    {
        this.XValue = x;
        this.YValue = y;
    }
}


Что я уже пробовал:

Я пробовал как память, так и сеанс в качестве варианта хранения. Я не могу использовать файловое хранилище, так как получаю ошибки разрешений.

ZurdoDev

Щелчок правой кнопкой мыши по сломанному изображению и выбор открытия в новой вкладке приводит к ошибке, что ресурс не может быть найден. У вас есть код, который где-то очищает изображения?

0 Ответов