我正在尝试从网页上读取网络服务器上备份文件的大小,以确定是否还有足够的空间来存储几天的备份。
以下代码在本地目录上工作:
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 \” 。”
登录到Web服务器(Windows Server 2012 R2)后,我的帐户可以访问网络共享。我是IIS 8.5的新手。该网站已从Windows 2003 R2服务器上的IIS 6中移出。我尝试将应用程序池的标识更改为4个选项中的每一个,甚至将其设置为我的帐户,但是我仍然收到拒绝访问的消息。我使用Process Monitor查看哪个帐户正在访问网络位置。似乎表明正确的身份正在尝试访问网络位置。但是即使在设置为我的帐户的条目上,它也会显示“访问被拒绝”消息。
我尝试按以下说明授予对应用程序池标识的权限:IIS7 Permissions Overview - ApplicationPoolIdentity,但Windows Server 2003计算机无法将IIS AppPool \ web站点识别为有效帐户。
最后,我尝试赋予所有人对文件夹和共享的完全控制权限。即使那样也不行...
更新的诊断信息:
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
答案 0 :(得分:0)
您是否尝试将应用程序池标识和网站的匿名身份验证都设置为您的帐户?