繁体   English   中英

Directory。存在于ASP.NET中的网络路径

[英]Directory.Exists for network paths in ASP.NET

我正在尝试获得:

Directory.Exists(@"E:\subdirectory")

当E:是持久映射的网络驱动器时,从ASP.NET运行时返回“ true”。 我使用以下命令从用户上下文下运行的命令行将其映射,该命令行成功返回并且不提示输入凭据:

net use E: \\servername\sharename /persistent:yes

此时,我完全在本地运行。

当我从控制台应用程序或linqpad运行Directory.Exists行时,它返回true。 当我从在IIS( 不是 IIS express)下运行的ASP.NET应用程序运行此文件时,它返回false。

我将应用程序池更改为使用与本地运行相同的用户帐户。 我已经通过以下方式验证了此效果:

  • 检查我的Windows进程列表,并确保w3wp.exe在我的用户帐户下运行。
  • 将我的ASP.NET应用程序附加到w3wp.exe并设置一个断点,然后检查Environment.UserName和Environment.UserDomainName以验证我是否在用户帐户的上下文中运行。

但是,我的ASP.NET应用程序在检查网络共享时仍然返回false。

为什么是这样?

映射的网络驱动器绑定到用户会话。 IIS在会话0中运行,映射的驱动器在最可能的会话1中运行。

我不知道在为会话创建网络驱动器时为其他会话显示网络的任何方法,我认为您无需使用E:\\ ,而是使用\\\\servername\\sharename作为路径。

暂无
暂无

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

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