Ama*_*nth 28 c# asp.net directory
我有一行代码检查目录是否存在,然后获取其中的文件列表.
System.IO.Directory.Exists(@"\\Server\Folder\");
Run Code Online (Sandbox Code Playgroud)
我在测试时工作(从visual studio运行),但是当我部署网站时,它总是返回false.
我对另一个文件夹,在另一台服务器(比如说Server2)上进行相同的验证,它运行正常.
然后我认为这是一个访问问题,但共享文件夹和网络可以访问所有人...还有其他原因导致它不起作用吗?
Shi*_*iji 23
在Visual Studio中运行代码时,它将以用户的权限运行.
当您在IIS中运行代码时,它以应用程序池的标识运行,默认情况下,该应用程序池是内置用户"网络服务",这是本地用户帐户,无法访问本地计算机.
网络共享上的权限是第一层,之后检查目录上的NTFS权限.
您需要将应用程序池的标识更改为具有与用户相同权限的域用户.
我可能有点晚了,但我发现Directory
类的这种方法存在问题。相反,我DirectoryInfo
以这种方式使用了模拟:
new DirectoryInfo(path).Exists
Run Code Online (Sandbox Code Playgroud)
这样您就可以避免整个身份更改问题,而我们的 IT 部门拒绝了这一问题。
我希望这对某人有所帮助!
归档时间: |
|
查看次数: |
31716 次 |
最近记录: |