.net SUBST和控制台应用程序与windows服务

.net SUBST和控制台应用程序与windows服务,.net,mapped-drive,.net,Mapped Drive,我使用SUBST命令创建映射到某个文件夹的驱动器。在控制台应用程序中,我可以访问该目录,而在windows服务应用程序中,我无法访问同一目录。换句话说,下面的行返回false Directory.Exists(@"x:\directory") 其中x:使用SUBST定义,如下所示: SUBST x: c:\xdrive 如何访问windows服务应用程序中的subst映射目录?subst位于您的注册表配置单元中。要访问此文件,windows服务必须在运行。更改服务的凭据 如果不可能,则可以通

我使用SUBST命令创建映射到某个文件夹的驱动器。在控制台应用程序中,我可以访问该目录,而在windows服务应用程序中,我无法访问同一目录。换句话说,下面的行返回false

Directory.Exists(@"x:\directory")
其中x:使用SUBST定义,如下所示:

SUBST x: c:\xdrive

如何访问windows服务应用程序中的subst映射目录?

subst位于您的注册表配置单元中。要访问此文件,windows服务必须在运行。更改服务的凭据


如果不可能,则可以通过编程方式创建指向该位置的链接。例如,通过调用System.Process来运行
cmd.exe/c subst
命令。

如果您的服务作为本地系统运行,请按照以下说明操作:


这将为您提供一个作为本地服务运行的命令提示符,以获取subst命令。问题是,使用subset命令创建的虚拟驱动器仅对创建它的用户可见。服务正在使用另一个用户权限运行,因此服务应用程序将看不到它。

恐怕我的应用程序不知道目录的原始位置,无法运行susbst命令!它只知道d:drive,并不关心它映射到哪里。有没有办法解析SUBST commmand创建的驱动器的原始映射位置?我相信您可以将计划任务作为网络服务运行并调用SUBST命令