2015-05-27 1 views
1

Я создаю график в приложении ASP.Net. С этой целью я включил контроль диаграммы в файле ASPX, как это: -Ложное имя для диаграммы ASP.Net

<asp:Chart ID="ourChart" 
      runat="server" 
      Height="500px" 
      width="520px" 
      BackColor="Black" 
      ImageLocation="~/GraphTempFiles/ChartPic_#SEQ(300,3)" 
      ImageStorageMode="UseImageLocation" 
      ImageType="Bmp"> 

и добавил, что я считаю, что необходимые функции к web.config: -

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    <handlers> 
    <add name="ChartImg" 
     verb="*" path="ChartImg.axd" 
     type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </handlers> 
</system.webServer> 
<appSettings> 
    <add key="ChartImageHandler" 
     value="storage=file;timeout=20;Url=~/GraphTempFiles;" /> 
</appSettings> 

Результат все это является то, что отображается страница с ошибкой сервера в приложении: -

не удалось найти часть пути «\ MyDisk \ MyDirectory \ MyProgram \ (S (32rdrd5zxhvc3rhq2szdxv2w)) \ Gr aphTempFiles \ ChartPic_000001.bmp.

Кто-нибудь знает, в чем дело? (Предположительно, я не должен создавать каталог (S(32rdrd5zxhvc3rhq2szdxv2w)) в любой точке, а число в скобках меняется каждый раз, когда я его запускаю.)

Я использую Visual Studio 2013 в Windows 8.1 с Microsoft .NET Framework Версия: 4.0 0,30319; Версия ASP.NET: 4.0.30319.34248, как говорится в нижней части страницы.

+0

Похож идентификатором сеанса. Ваши сеансы непригодены? – CodeCaster

+0

@CodeCaster, я сам не использую их; можно было бы создать от моего имени без меня. –

+0

Я исправил эту проблему в конце, скопировав файл web.config из предыдущего работавшего проекта. Я не мог видеть, какие части были разными, но, очевидно, были некоторые; необходимо что-то явно не соответствующее. На самом деле это не ответ. –

ответ

1

Скорее всего, эта ошибка возникает, так как ASP.NET Cookieless функция включена в web.config файл, как это:

<sessionState mode="InProc" cookieless="UseUri" timeout="60" /> 

По Understand How the ASP.NET Cookieless Feature Works к:

UseUri: Cookieless функция всегда будет использоваться.

В этом случае Url может выглядеть следующим образом: http://mysite/MyWebApp/(S(XXXX))/home.aspx


Есть по крайней мере два доступных для решения его варианты:

Вариант 1, отключить Cookieless Feature, использование, для пример, по умолчанию установки для sessionState элемент:

<sessionState mode="InProc" customProvider="DefaultSessionProvider"> 
    <providers> 
    <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"/> 
    </providers> 
</sessionState> 

Вариант 2, указать относительного физического пути для ImageLocation имущества Chart управления, например:

<asp:Chart ID="ourChart" 
       runat="server" 
       Height="500px" 
       width="520px" 
       BackColor="Black" 
       ImageLocation="GraphTempFiles/ChartPic_#SEQ(300,3)" 
       ImageStorageMode="UseImageLocation" 
       ImageType="Bmp"/> 
+1

Спасибо. Часть 'cookieless' была в старом web.config, но не тот, который я заменил. –

Смежные вопросы