我有一行代码判断目录是否存在,然后获取其中的文件列表.

System.IO.Directory.Exists(@"\\Server\Folder\");

我在测试它(从VisualStudio运行)时可以工作,但在部署网站时,它总是返回false.

我对另一个服务器(假设是Server2)上的另一个文件夹执行了相同的验证,它工作得很好.

然后我认为这是一个访问问题,但共享文件夹和网络可以访问所有人...有没有其他原因导致它不起作用?

推荐答案

在Visual Studio中运行代码时,它将在用户权限下运行.

当您在IIS中运行代码时,它以应用程序池的标识运行,该应用程序池在默认情况下是内置用户"网络服务",这是一个本地用户帐户,在本地计算机之外无权访问.

网络共享上的权限是第一层,然后判断目录上的NTFS权限.

您需要将应用程序池的标识更改为与您的用户具有相同权限的域用户.

Asp.net相关问答推荐

IISExpress未在ARM64 Mac/.NET 4.8上启动

DBSet 不包含 Where 的定义

Web 服务器配置为不列出此目录的内容. asp.net vs 2012 错误?

使用会话变量有多安全 - asp.net / c#

有没有一种简单的方法可以将对象属性转换为字典

如何将 Castle Windsor 与 ASP.Net Web 表单一起使用?

如何在 ASP.NET Web API 中使用非线程安全的 async/await API 和模式?

如何在 Visual Studio 2017 中使用 NPM 并安装包?

Asp.net Identity 密码哈希

ASP.Net 自定义客户端验证

反序列化客户端 AJAX JSON 日期

使用 JObject 所需的库名称是什么?

在 asp.net 中将 JSON 转换为 .Net 对象时出错

在 Visual Studio 2010 Professional 中找不到请求的 .Net Framework 数据提供程序

有条件地排除 ASP.NET WebForms 中的一个 html 块

ASP.NET 元:资源键

在 ASP.NET 中使用 MasterPages 时使用 JQuery 的正确方法?

路由模板分隔符/不能连续出现 - 属性路由问题

IE9 JavaScript 错误:SCRIPT5007:无法获取属性ui的值:对象为空或未定义

try 为 Medium Trust 开发是否会失败?