UnauthorizedAccessException - 图像位置不在指定目录下

时间:2014-08-10 11:26:30

标签: c# asp.net iis-8.5

我正在将一个用asp.net编写的网站从Windows Server 2003机器复制到带有IIS 8.5的Windows Server 2012.

该网站在旧机器上运行良好,但新机器上的任何网页都没有显示图表。

我收到一个奇怪的错误:

    General Information
--------------------------------
MachineName: AYEVENS12MAVTST
TimeStamp: 10/08/2014 11:38:18
WindowsIdentity: NT AUTHORITY\SYSTEM

Exception Information
---------------------------------------
Exception Type: System.UnauthorizedAccessException
Message: The image location is not under specified directory.
Data: System.Collections.ListDictionaryInternal
TargetSite: Void ValidateUri(System.String)
HelpLink: NULL
Source: System.Web.DataVisualization
HResult: -2147024891

StackTrace Information
---------------------------------------
   at System.Web.UI.DataVisualization.Charting.ChartHttpHandlerSettings.ValidateUri(String key)
   at System.Web.UI.DataVisualization.Charting.DefaultImageHandler.System.Web.UI.DataVisualization.Charting.IChartStorageHandler.Load(String key)
   at System.Web.UI.DataVisualization.Charting.ChartHttpHandler.ProcessSavedChartImage(HttpContext context)
   at System.Web.UI.DataVisualization.Charting.ChartHttpHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

这很奇怪,因为我看到图片的路径是正确的,我可以毫无问题地打开图片。 我认为这是一个权限问题,但我完全控制了包含IIS_USRS和WindowsIdentity:NT AUTHORITY \ SYSTEM的文件夹,同样的错误不断弹出。 让我感到困扰的是“图像位置不在指定目录下”的消息。因为图像是它应该的位置。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您是否尝试使用web.config文件模拟特定的授权Windows帐户?

    <configuration>
      <system.web>
        <identity impersonate="true" userName="user name" password=" user password" />
      </system.web>
    </configuration>

答案 1 :(得分:0)

我通过(意外地)移除线

解决了这个问题
<add key="ChartImageHandler" value="storage=file;privateImages=false;timeout=600;dir=c://TempImageFiles;deleteAfterServicing=false;" />

来自网络配置,我不知道为什么会这样。