I am writing a small project with a file connection from a network drive, when publishing to a local PC I get an exception

System.IO.DirectoryNotFoundException: Could not find part of the path

then I decided to register an explicit connection in the path field

string path = "\\\\192.168.0.2\\delete\\test.dat 

and again I get an exception:

System.UnauthorizedAccessException: Access denied by path \ 192.168.0.2 \ delete \ test.dat

And as it is clear that the system requires a login password, I found an example on MSDN: add to web.config :

  <configuration> <system.web> <identity impersonate="true" userName="192.168.0.2\Admin" password="pass123"//> </system.web> </configuration> 

And I still get an error that says that such a user and password does not exist in the system, please help me solve the problem. thank

  • try to give access to the folder: as advised here - Ruslan_K
  • @Ruslan_K Failed - Ethernets
  • To start, admit, do you have a web application or dextup? Or even a wine service? - Pavel Mayorov
  • @PavelMayorov is worth the same MVC tag - tCode
  • one
    @tCode I have, of course, the suspicion that asp.net mvc was meant - but confirmation from the author is needed - Pavel Mayorov

1 answer 1

Source: en SO: When connecting to a network share

Try it, it works for me

Networkmanager

 public class NetworkManager : IDisposable { private readonly string _networkName; public NetworkManager(string networkName) { _networkName = networkName; NetResource netResource = new NetResource { Scope = ResourceScope.GlobalNetwork, ResourceType = ResourceType.Any, DisplayType = ResourceDisplayType.Directory, RemoteName = networkName }; int result = WNetAddConnection2(netResource, "ВАШ ПАРОЛЬ", "ВАШ ЛОГИН", 0); if (result != 0) { throw new Win32Exception(result); } } ~NetworkManager() { Dispose(false); } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { WNetCancelConnection2(_networkName, 0, true); } [DllImport("mpr.dll")] private static extern int WNetAddConnection2(NetResource netResource, string password, string username, int flags); [DllImport("mpr.dll")] private static extern int WNetCancelConnection2(string name, int flags, bool force); } [StructLayout(LayoutKind.Sequential)] public class NetResource { public ResourceScope Scope; public ResourceType ResourceType; public ResourceDisplayType DisplayType; public int Usage; public string LocalName; public string RemoteName; public string Comment; public string Provider; } public enum ResourceScope { Connected = 1, GlobalNetwork, Remembered, Recent, Context } public enum ResourceType { Any = 0, Disk = 1, Print = 2, Reserved = 8, } public enum ResourceDisplayType { Generic = 0x0, Domain = 0x01, Server = 0x02, Share = 0x03, File = 0x04, Group = 0x05, Network = 0x06, Root = 0x07, Shareadmin = 0x08, Directory = 0x09, Tree = 0x0a, Ndscontainer = 0x0b } 

Using

 using (NetworkManager network = new NetworkManager(@"\\192.168.0.2")) { // ваш код с подключением } 
  • Comments are not intended for extended discussion; conversation moved to chat . - PashaPash