ASP.NET Chart не работает на сервере - PullRequest
2 голосов
/ 17 января 2011

Я пытался создать веб-приложение, и все вроде бы нормально, когда я запускаю его на своем ноутбуке, но оно просто не работает, когда я пытаюсь загрузить его на сервер. Я использую сервер Godaddy для Windows в .net 4. Я попытался поработать с файлом web.config, но, похоже, он не работает.

Вот так выглядит мое временное местоположение сохранения изображения в web.cofig

  <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />

Я что-то упустил? Пожалуйста, помогите.

Ответы [ 3 ]

3 голосов
/ 17 января 2011

если вы находитесь на общем хостинге, папка c: \ TempImageFiles \ не существует на сервере, и если вы каким-либо образом можете добавить эту папку, приложение asp.net не имеет прав на запись вне своей корневой папки

Сохранить в сеансе

<add key="ChartImageHandler" value="storage=session;timeout=20;" />

посмотрите на

http://blogs.msdn.com/b/deliant/archive/2008/12/02/managing-chart-generated-images-with-chart-image-handler.aspx?wa=wsignin1.0

2 голосов
/ 22 июля 2011

Я боролся с этой же проблемой в своем плане общего хостинга Godaddy 4GH и думал, что поделюсь своим решением.

  1. Вставьте элемент управления диаграммы в Default.aspx

    Следующий код должен появиться в вашем коде за файлом

    <%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>
    
  2. Редактировать ваш файл web.config

    Я следовал инструкциям на этом блоге и полностью удалил узел httpHandlers из моего файла web.config и перезаписал узел обработчиков следующим кодом

    <handlers>
        <remove name="ChartImageHandler" />
        <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST"
    path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,
    System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>
    
  3. Создать каталог для хранения диаграмм

    Iсоздал новую папку в корне приложения с именем Charts

  4. Изменение настроек элемента управления диаграммы

    Обновите свойства ImageStorageMode и ImageLocation, как это

    <asp:Chart ID="Chart1" runat="server" ImageStorageMode="UseImageLocation" ImageLocation="~/Charts/ChartPic_#SEQ(300,3)">
        <series>
            <asp:Series Name="Series1">
            <Points>
            <asp:DataPoint AxisLabel="Greg" YValues="1" />
            </Points>
            </asp:Series>
        </series>
        <chartareas>
            <asp:ChartArea Name="ChartArea1">
            </asp:ChartArea>
        </chartareas>
    </asp:Chart>
    
  5. Публикация в Godaddy

  6. Изменение прав доступа к файлам в папке Charts на опубликованном сайте

    • Войдите в свой Центр управления хостингом
    • Нажмите на FTP File Manager в разделе Content
    • Перейдите в корневой каталог приложения
    • Установите флажок рядом с вашей папкой Charts
    • Нажмите Разрешения в меню
    • Снимите флажок Наследовать
    • Проверить запись (оставить флажок Чтение проверенным)
    • Нажмите OK

Каждый раз, когда вы повторно публикуете свою заявку, вам придется повторять шаг 6.

1 голос
/ 17 января 2011

Предполагая, что c:\TempImageFiles\ создает проблемы на вашем сервере

Вы также можете попробовать установить режим хранения на storage=memory вместо storage=file

проверьте также эту хорошую документацию: http://www.4guysfromrolla.com/articles/081909-1.aspx

...