提问者:小点点

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


我正试图得到:

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

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

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

在这一点上,我完全在本地运行。

当我运行目录。从控制台应用程序或linqpad中存在行,它返回true。当我从运行在IIS(不是IIS Express)下的ASP. NET应用程序运行时,它返回false。

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

  • 检查我的windows进程列表并确保w3wp。exe正在我的用户帐户下运行
  • 附加我的ASP。NET应用于w3wp。exe并设置断点,然后检查环境。用户名和环境。UserDomainName以验证我正在用户帐户的上下文中运行

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

这是为什么呢?


共1个答案

匿名用户

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

在为会话创建网络驱动器时,我不知道有什么方法可以让它们在其他会话中显示,我认为您不需要使用E:\,而是使用\\servername\sharename作为路径。