我有一个 C# 应用程序,它在启动时加载,并将数据记录到安装为 X 的网络驱动器:
当机器首次启动时,应用程序会抛出 X:\ 不可用的错误。如果我重新启动应用程序,同样的错误。
但是,如果我打开 Windows 资源管理器并双击浏览驱动器,我可以运行该应用程序,它会连接到 X: 就好了。
尽管已映射,网络驱动器是否不会在启动时自动初始化?有没有办法将它们设置为自动初始化?
我有一个 C# 应用程序,它在启动时加载,并将数据记录到安装为 X 的网络驱动器:
当机器首次启动时,应用程序会抛出 X:\ 不可用的错误。如果我重新启动应用程序,同样的错误。
但是,如果我打开 Windows 资源管理器并双击浏览驱动器,我可以运行该应用程序,它会连接到 X: 就好了。
尽管已映射,网络驱动器是否不会在启动时自动初始化?有没有办法将它们设置为自动初始化?
我有完全相同的问题。我不知道是否有更好的方法,但我在访问映射驱动器之前将其添加到我的代码中。
Process mapDrive = new Process();
mapDrive.StartInfo.FileName = "net.exe";
mapDrive.StartInfo.Arguments = @"use c: \\server\share";
mapDrive.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
mapDrive.Start();
这样,无论驱动器在启动时是否可用,它都将始终可用。
有关要检查的事项列表,请参阅如何在此处访问映射的网络驱动器。我的猜测是您的用户不存在该驱动器,或者访问它时存在权限问题。要检查的另一项是您调用 Impersonate 的顺序,假设您正在这样做,也就是说。
根据无法从 Windows 服务访问映射驱动器上的文件,您根本不应该这样做。请参阅已接受答案中提供的 Microsoft 链接。