2015-05-27 27 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))在任何时候;括号内的数字每次运行它都会有所不同)。

我在Windows 8.1上使用Visual Studio 2013,使用Microsoft .NET Framework版本:4.0 0.30319; ASP.NET版本:4.0.30319.34248,正如它在页面底部所示。

+0

看起来像的会话ID。您的会话是否为无Cookie? – CodeCaster

+0

@CodeCaster,我自己并没有使用它们;我可能没有意识到,有人可能会创建一个。 –

+0

我最后修复了这个问题,通过从以前的项目工作中复制web.config文件。我看不出哪个部分是不同的,但显然有一些;需要设置一些不明显的相关内容。不过,这并不是一个真正的答案。 –

回答

1

因为ASP.NET cookie的特点是web.config文件中启用这样最有可能出现此错误:

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

Understand How the ASP.NET Cookieless Feature Works到:

UseUri:无cookie功能将始终使用。

在这种情况下,URL可能看起来像这样:http://mysite/MyWebApp/(S(XXXX))/home.aspx


至少有两个选项可用来解决它:

选项1,禁用cookie的功能,用途,例如,默认设置为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,指定相对物理路径Chart控制的ImageLocation属性,例如:

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

谢谢。 “无Cookie”部分位于旧的web.config中,但不是我替换的部分。 –