C#ASP目录不存在时为true

问题描述 投票:1回答:1

我在检查Directory.Exists时遇到问题,当目录不存在时它总是返回true。至少这些是我基于错误日志的假设。

注:问题不在本地开发环境中发生,仅在生产环境中发生。

因此开始,这是错误消息:

Message: Could not find a part of the path 'd:\home\site\wwwroot\media\cdn'.

Exception type: System.IO.DirectoryNotFoundException
Stack Trace: 
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
at System.IO.Directory.GetFiles(String path, String searchPattern)
at CMS.AzureStorage.Directory.GetFiles(String path, String searchPattern)
at CMS.IO.Directory.GetFiles(String path, String searchPattern)
at CMS.AzureStorage.DirectoryInfo.GetFiles(String searchPattern, SearchOption searchOption)

相关函数(精简到相关代码段:]:>

public override string[] GetFiles(string path, string searchPattern)
{
  List<string> stringList = new List<string>();
  if (Directory.ExistsInFileSystem(path))
  {
    foreach (string file in System.IO.Directory.GetFiles(path, searchPattern))
      stringList.Add(Directory.GetCaseValidPath(file, new bool?()));
  }
  ...
}

public static bool ExistsInFileSystem(string path)
{
  return System.IO.Directory.Exists(path);
}

如您所见,它正在到达System.IO.Directory.GetFiles,但是我不明白的是,当目录不存在时,如何绕过if (Directory.ExistsInFileSystem(path))行?

我非常困惑,希望有人可以解释发生了什么。

我在检查Directory时遇到问题。当目录不存在时,该目录始终返回true。至少这些是我基于错误日志的假设。注意:问题不在本地发生...

c# asp.net kentico
1个回答
0
投票

您正在尝试访问站点根文件夹之外的文件夹。如果生产环境是“ Cloud”,则需要提供对目录的访问。提供访问权限取决于您的云环境

© www.soinside.com 2019 - 2024. All rights reserved.