4

我有一个 C# 应用程序,它在启动时加载,并将数据记录到安装为 X 的网络驱动器:

当机器首次启动时,应用程序会抛出 X:\ 不可用的错误。如果我重新启动应用程序,同样的错误。

但是,如果我打开 Windows 资源管理器并双击浏览驱动器,我可以运行该应用程序,它会连接到 X: 就好了。

尽管已映射,网络驱动器是否不会在启动时自动初始化?有没有办法将它们设置为自动初始化?

4

2 回答 2

3

我有完全相同的问题。我不知道是否有更好的方法,但我在访问映射驱动器之前将其添加到我的代码中。

Process mapDrive = new Process();
mapDrive.StartInfo.FileName = "net.exe";
mapDrive.StartInfo.Arguments = @"use c: \\server\share";
mapDrive.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
mapDrive.Start();

这样,无论驱动器在启动时是否可用,它都将始终可用。

于 2012-04-05T14:19:46.997 回答
0

有关要检查的事项列表,请参阅如何在此处访问映射的网络驱动器。我的猜测是您的用户不存在该驱动器,或者访问它时存在权限问题。要检查的另一项是您调用 Impersonate 的顺序,假设您正在这样做,也就是说。

根据无法从 Windows 服务访问映射驱动器上的文件,您根本不应该这样做。请参阅已接受答案中提供的 Microsoft 链接。

于 2012-04-05T14:20:06.797 回答