繁体   English   中英

Server.MapPath()返回与DirectoryInfo一起使用时不存在的路径

[英]Server.MapPath() returning a path that does not exist when used with DirectoryInfo

我在IIS6中有一个虚拟目录设置。 这映射到共享的网络驱动器。

我可以使用正确地映射路径

string mappedPath = HttpContext.Current.Server.MapPath(path);

然后我要创建DirectoryInfo对象,因为我想在目录中找到一些文件。

DirectoryInfo updateDirectory = new DirectoryInfo(mappedPath);

但是然后updateDirectory.Exists是假的吗? 我可以从mappedPath获取字符串,然后复制到Start-> Run中以获取路径,因此我知道它存在。 我正在使用集成的Windows身份验证对Web服务进行身份验证,并具有对必要文件夹的权限。

代码中我明显缺少什么吗? 还是这纯粹是IIS等的设置和配置?

您需要检查您的服务工作流程帐户是否对该文件夹具有访问权限。 AFAIK Windows身份验证不会给工作过程带来模仿,因此Windows身份验证可能会有所不同。 或者(仅为了证明帐户问题),您可以使用您的帐户运行应用程序池,以查看问题是否会消失。

根据此链接:

http://bytes.com/topic/asp-net/answers/471616-server-mappath-virtual-directories

当对虚拟目录使用Server.MapPath ,不会提供预期的输出。

如果这是服务器权限,并且您正在使用Windows身份验证,请确保在配置中包含此权限:

<identity impersonate="true" /> 

如果出现错误情况,DirectoryInfo返回false:如果文件夹不存在; 您没有权限; 或它是断开连接的网络文件夹。

听起来像是您的ASP.NET辅助进程的权限对我来说-模拟将解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM