【问题标题】:persistent access denied message when debugging project using IIS Express and Visual Studio使用 IIS Express 和 Visual Studio 调试项目时出现持久访问被拒绝消息
【发布时间】:2020-07-06 20:43:56
【问题描述】:

我正在 Visual Studio 2019 中调试我的 NetCore 3.1 项目。我正在使用 Windows 10 上的内置 IIS Express 在本地执行此操作。

我正在尝试将文件保存到我的 D: 驱动器。

当我使用 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 身份验证设置为启用
  • 以管理员身份启动 Visual Studio
  • 完全控制 D:驱动到 LOCAL SERVICE、NETWORK SERVICE、IUSR、IIS_USERS 和 NETWORK,以及我自己的 Windows 帐户(它是 管理员)。

我不确定我还能尝试什么。

以前有人解决过这个问题吗?

谢谢!

【问题讨论】:

  • 尝试删除文件夹biologyMedia

标签: visual-studio visual-studio-2019 iis-express


【解决方案1】:

Skye,抱歉,但可能是你的路

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

实际上是文件夹 @"D:\biologyMedia\" + diseaseId + @"\"; 因此不是文件名?

所以您是在尝试将文件复制到文件夹中而不是复制到其中?

【讨论】:

  • 您好,我首先创建路径,如下所示:"D:\biologyMedia\394837\" 然后我在复制文件时使用该路径
  • 是的,但我认为您需要执行类似new FileStream(path+"filename", FileMode.Create) 的操作,以便文件流“指向”文件以进行复制操作
【解决方案2】:

我过去曾在 IIS 上经历过类似的冒险,但我从未使用过 IIS Express。在我的情况下,我必须授予应用程序池用户对该文件夹的访问权限。

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

我建议您检查 applicationhost.config 以检查 IIS Express 中的应用程序池。并确保IIS Express的应用程序池对文件夹D:\biologyMedia有完全的控制权。

希望这会有所帮助。

【讨论】:

  • 谢谢,但不幸的是,这不适用于 IIS Express
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多