代码之家  ›  专栏  ›  技术社区  ›  SkyeBoniwell

使用IIS Express和Visual Studio调试项目时出现永久性拒绝访问消息

  •  0
  • SkyeBoniwell  · 技术社区  · 4 年前

    我正在visualstudio2019中调试我的NetCore 3.1项目。我使用Windows10上的内置iisexpress在本地执行此操作。

    使用IIS Express以调试模式运行Visual Studio项目时,尝试将文件复制到本地文件系统时出现以下错误:

    {"Access to the path 'D:\\biologyMedia\\eb4cf4c2-6434-4cfe-9fa8-0033bc9b1a08' is denied."}
    

    错误发生在try块中的以下方法中:

    public async Task<bool> CopyFile(IFormFile examFile, Guid diseaseId)
    {
        string path = @"D:\biologyMedia\" + diseaseId + @"\";
    
        if (!Directory.Exists(path))
        {
            DirectoryInfo di = Directory.CreateDirectory(path);
        }
    
        try
        {
            using (var fileStream = new FileStream(path, FileMode.Create))
            {
                await examFile.CopyToAsync(fileStream);
            }
    
        } catch (Exception e)
        {
            var error = e.InnerException;
            return false;
        }
    
        return true;
    }
    

    基于之前的回答,我尝试了以下方法:

    • 在项目属性中将“Windows身份验证”设置为“已启用”
    • 完全控制 管理员)。

    我不知道还能做什么。

    0 回复  |  直到 4 年前
        1
  •  2
  •   James    4 年前

    斯凯,对不起,但这是你的路吗

    using (var fileStream = new FileStream(path, FileMode.Create))
            {
                await examFile.CopyToAsync(fileStream);
            }
    

    @“D:\biologyMedia\”+疾病ID+@“\”;

    所以你想把一个文件复制到一个文件夹而不是复制到它里面?

        2
  •  2
  •   James    4 年前

    我以前也有过类似的冒险经历,有过IIS,但我从来没有用过iisexpress。在我的例子中,我必须授予应用程序池用户对该文件夹的访问权限。

    参见: https://support.pkware.com/home/smar/latest/sem-knowledge-base/kb-granting-folder-permissions-to-iis-application-pools

    D:\biologyMedia .

    希望这有帮助。

        3
  •  1
  •   Captain Kenpachi    4 年前

    我建议您将文件保存到应用程序根目录下的文件夹中。虽然我无法解释您遇到的问题,但您最好以这样一种方式编写代码:它不会访问应用程序根目录之外的文件夹。

    推荐文章