我试图从网页上读取网络服务器上的备份文件的大小,以确定是否还有足够的空间来存储几天的备份。
以下代码适用于本地目录:
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 \ website识别为有效帐户。
最后,我尝试在文件夹和共享上给予Everyone Full Control。即便这样也行不通......
更新的诊断信息:
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
您是否尝试将应用程序池标识和站点的匿名身份验证设置为您的帐户?