【发布时间】:2019-07-07 16:34:31
【问题描述】:
我正在尝试从网页读取网络服务器上备份文件的大小,以确定是否还有足够的空间来存储几天的备份。
以下代码适用于本地目录:
var directoryInfo = new DirectoryInfo( @"c:\AppFolder\" );
var file = directoryInfo.GetFiles()
.OrderByDescending( f => f.LastWriteTime )
.First()
;
var length = file.Length;
但是当我尝试访问网络文件夹(例如 \\server1.domain1\share\)时,我收到了System.UnauthorizedAccessException:“访问路径 '\\server1.domain1\share\' 被拒绝。”
登录到网络服务器 (Windows Server 2012 R2) 后,我的帐户可以访问网络共享。我对 IIS 8.5 相当陌生。该网站是从 Windows 2003 R2 服务器上的 IIS 6 移出的。我尝试将应用程序池的身份更改为 4 个选项中的每一个,甚至将其设置为我的帐户,但我仍然收到拒绝访问消息。我使用进程监视器查看访问网络位置的帐户。这似乎表明正确的身份正在尝试访问网络位置。但即使在设置为我的帐户的条目上,它也会给出拒绝访问消息。
我尝试按照此处所述授予应用程序池身份的权限:IIS7 Permissions Overview - ApplicationPoolIdentity,但 Windows Server 2003 计算机无法将 IIS AppPool\website 识别为有效帐户。
最后,我尝试让每个人都完全控制文件夹和共享。即使这样也行不通……
更新的诊断信息:net share share的结果
Share name share
Path c:\share
Remark
Maximum users No limit
Users USER1
Caching Manual caching of documents
Permission DOMAIN1\User1, READ
icacls c:\share的结果:
c:\share NT AUTHORITY\NETWORK SERVICE:(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
DOMAIN1\User2:(I)(F)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
DOMAIN1\User3:(I)(OI)(CI)(M)
DOMAIN1\User1:(I)(OI)(CI)(RX)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
BUILTIN\Users:(I)(CI)(S,AD)
BUILTIN\Users:(I)(CI)(S,WD)
Successfully processed 1 files; Failed processing 0 files
进程监视器:
Operation: CreateFile
Path: \\\\server1.domain1\\share1
Result: ACCESS DENIED
Detail: Desired Access: Read Data/List Directory, Synchronize,
Disposition: Open, Options: Directory, Synchronous IO Non-alert,
Open For Backup, Attributes: n/a, ShareMode: Read, Write, Delete,
AllocationSize: n/a, Impersonating: DOMAIN1\\User1
User: DOMAIN1\\User1
【问题讨论】:
标签: iis permissions application-pool iis-8.5 unc