Bur*_*jua 155 .net c# iis path denied
我知道这个问题在这里被多次询问过,但我无法找到解决问题的方法.我正在尝试将图像保存到.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)
Run Code Online (Sandbox Code Playgroud)
我给完全控制该文件夹(savehere)至network service和iis_iusrs,甚至给予了充分的控制,everyone但仍然得到此异常.我尝试通过资源管理器和IIS管理器进行访问,但仍然没有运气
我在Windows Server 2008 R2和IIS 7.5上进行此操作,我需要提供哪些访问权限?
谢谢
Han*_*ant 214
访问路径'C:\ inetpub\wwwroot\mysite\images\savehere'被拒绝
仔细阅读信息.您正在尝试保存到与目录同名的文件.这不起作用,你不能用一个新文件覆盖填充文件的目录.这将导致无法识别的数据丢失,"拒绝访问路径"是文件系统反击以防止这种情况发生.
异常消息并不理想,但它直接来自操作系统,它们是一成不变的.该框架通常会添加额外的检查以生成更好的消息,但这对网络来说是一项昂贵的测试.Perf也是一个功能.
你需要使用像'C:\ inetpub\wwwroot\mysite\images\savehere\mumble.jpg'这样的名字.考虑Path.Combine()以可靠地生成路径名.
Ode*_*ded 88
您需要从应用程序池中找到该网站运行的身份(默认情况下是这样Application Pool Identity),并授予正确的权限.
Len*_*rri 22
我在尝试在服务器上创建文件时遇到了同样的问题(实际上是一个来自模板的副本的文件).
这是完整的错误消息:
{ERROR} 08/07/2012 22:15:58 - System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\SAvE\Templates\Cover.pdf' is denied.
Run Code Online (Sandbox Code Playgroud)
我Templates在IIS应用程序文件夹中添加了一个新文件夹.在我的情况下,一个非常重要的事情是我需要为该文件夹上的IUSR用户授予Write(Gravar)权限.您可能还需要给予Network Service和ASP.NET v$.#相同的写入权限.

完成后,一切都按预期工作.
当我尝试保存文件而不设置文件名时,我遇到了这个问题.
旧代码
File.WriteAllBytes(@"E:\Folder", Convert.FromBase64String(Base64String));
Run Code Online (Sandbox Code Playgroud)
工作守则
File.WriteAllBytes(@"E:\Folder\"+ fileName, Convert.FromBase64String(Base64String));
Run Code Online (Sandbox Code Playgroud)
小智 6
我用这个设置解决了:
IIS > 应用程序池 > [您的站点] > 高级设置... > 身份 > 内置帐户 > LocalSystem
我的问题是我不得不要求只读读取权限:
FileStream fs = new FileStream(name, FileMode.Open, FileAccess.Read);
Run Code Online (Sandbox Code Playgroud)