我试图保存一个图像到。net c#的文件夹,但我得到这个异常:

Access to the path 'C:\inetpub\wwwroot\mysite\images\savehere' is denied.The error occured at mscorlib because    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode)

我完全控制了这个文件夹(savehere)到网络服务和iis_iusrs,甚至完全控制了每个人,但仍然得到这个异常。 我尝试通过浏览器和IIS管理器访问,仍然没有运气

我是在Windows server 2008 R2和IIS 7.5上做的,我需要给谁访问权限?


当前回答

将“内置帐户”修改为“自定义帐户”,并输入另一台服务器的用户名和密码。 保持设置为集成模式(而不是经典模式)。

其他回答

您需要从网站的应用程序池中找出它运行的身份(默认情况下是应用程序池身份),并授予正确的权限。

我的问题大概是这样的:

FileStream ms = new FileStream(path, FileMode.Open, FileAccess.ReadWrite);

但不是使用path,我应该使用File.FullName… 我不知道它是否会帮助其他人,只是传递我自己的经验与这个错误!

我也有同样的问题。

解决方案是我试图访问的文件是只读的,因为它是从只读的模板文件复制的。

< facepalm - >

我最近在尝试访问通过命令行参数传递到我的. net Core应用程序的文件时遇到了这个问题,这是因为当应用程序在“打开”(文件下的系统资源管理器上下文菜单)系统菜单下运行时,当前活动的用户可能会有所不同,并且用户没有访问我的外部驱动器的权限,我试图打开一个文件。

我花了3-4个小时才理解,我通过设置包含该文件的文件夹的安全设置解决了这个问题。 Windows 10 x64操作系统: 只需使用属性->安全->用户和组->更改..—>添加—>附加—>搜索—> <您的windows帐户名称>—> OK—> OK—>设置当前帐户的完全访问权限。还要确保该文件在属性中是“未阻塞”的。

我遇到了很多麻烦,特别是与我的代码在本地运行有关,但当我需要在IIS上运行它时,它抛出了这个错误。我发现,在我的代码中添加一个检查,并让应用程序在第一次运行时创建文件夹,就可以解决这个问题,而不必打乱文件夹的授权。

在调用使用文件夹的方法之前

bool exists = System.IO.Directory.Exists("mypath");

        if (!exists)
            System.IO.Directory.CreateDirectory("mypath");