我试图保存一个图像到。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上做的,我需要给谁访问权限?


当前回答

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

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

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

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

其他回答

有一个与我试图写的文件同名的目录,所以人们也可以找到它。

当我试图在服务器上创建一个文件(实际上是从模板复制的文件)时,也遇到了同样的问题。

下面是完整的错误信息:

{ERROR} 08/07/2012 22:15:58 - System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\SAvE\Templates\Cover.pdf' is denied.

我在IIS应用程序文件夹中添加了一个名为Templates的新文件夹。在我的案例中,一个非常重要的事情是,我需要给IUSR用户在该文件夹上的写(Gravar)权限。您可能还需要提供网络服务和ASP。净v $。#相同的写权限。

完成此操作后,一切正常工作。

在我的情况下,我必须在IIS中为网站添加一个. net授权规则。

我添加了一条允许匿名用户的规则。

在我的例子中,我试图访问一个设置为只读的文件

我通过禁用只读来解决它,我得到了它的修复!

希望它能对像我一样经历这种情况的人有所帮助。

我也有同样的问题,但我通过将文件保存在不同的位置,然后复制文件并粘贴到我想要的位置来解决它。我使用这个选项来替换现有的文件,这对我来说很有用。我知道这不是最有效的方法,但它确实有效,而且用时不到15秒。