Network Drive Not Available On Startup

青春壹個敷衍的年華 提交于 2019-12-12 14:36:23

问题


I have a C# application which loads at startup, and logs data to a network drive, which is mounted as X:

When the machine first boots, the application throws an error that X:\ is not available. If I restart the app, same error.

However, if I open Windows Explorer and double click to browse the drive, I can then run the application and it will connect to X: just fine.

Do network drives not automatically initialise on startup, despite being mapped? Is there a way to set them to initialise automatically?


回答1:


Ive had the exact same issue. I don't know if there are better methods out there, but I added this to my code before accessing the mapped drive.

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

That way whether the drive is available at start up or not it will always be available.




回答2:


See How Can I Access a Mapped Network Drive here on SO for a list of things to check. My guess is either the drive does not exist for your user, or there is a permissions issue accessing it. Another item to check is the order in which you call Impersonate, assuming that you are doing so, that is.

According to Cannot Access Files On Mapped Drive From Windows Service you should not do this at all. See the Microsoft link(s) provided in the accepted answer.



来源:https://stackoverflow.com/questions/10029825/network-drive-not-available-on-startup

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!