新 网络连接导致问题 ( "network location already in use" )



(已知)问题:

我有一个特定的应用程序部分,以便在网络位置上创建用户home驱动器:

System.Net.NetworkCredential cred = new System.Net.NetworkCredential(myadmin,pwd);
using (new NetworkConnection(@"\serverDataHome", cred))
{
string path = $@"\serverDataHome{userName}";
Directory.CreateDirectory(path);
SetFullPermission(path, userName);
}
在某些情况下,上面的代码可能会失败,并显示以下错误消息:

不允许同一用户使用多个用户名连接到服务器或共享资源。断开与服务器或共享资源的所有先前连接,并尝试…

:

如果我的本地用户在任何给定的时间打开了网络驱动器(如果文件夹再次关闭),或者如果主驱动器在任何给定的时间(直到计算机重新启动)被映射,则会导致错误

处理:

  1. 从用户中删除主驱动器并删除登录脚本(这样就不会自动映射到服务器的驱动器)
  2. 重新启动计算机并登录
  3. 执行软件
  4. 任务完成后,再次添加登录脚本和主驱动器到自己的用户并重新登录,以便访问网络驱动器

问题:

是否有一种方法可以在我的c#应用程序中取消using (new NetworkConnection(@"\serverDataHome", cred))之前的任何给定的相关网络连接?

在评论中我已经暗示了这一点,但是如果您的用户能够访问路径,为什么会失败呢?您的目的是创建username-path-folder。这是已经存在的,因此是成功的,还是我错了?

string path = $@"\serverDataHome{userName}";
try
{
System.Net.NetworkCredential cred = new System.Net.NetworkCredential(myadmin, pwd);
using (new NetworkConnection(@"\serverDataHome", cred))
{
Directory.CreateDirectory(path);
SetFullPermission(path, userName);
}
}
catch(SpecificException)
{
// you can ignore this one - you want access to the folder - and you already have it
// you could try to write and delete a temp file to ensure access as a failsafe
}
catch(Exception)
{
throw;
}

也许是这样的?你有一个文件夹(管理员创建的),所以没有必要失败。

为"服务器"添加新的DNS别名;在本地hosts文件中,或者在服务器环境中的DNS服务器上。

对于我来说,我有一个"server_write_quot;"别名,一般用户(包括我)只能读取数据的服务器,但随后可以创建访问"Server_Write data"的应用程序。使用具有保存新文件或创建文件夹权限的其他凭证进行共享。这给了我一个想法……https://backupchain.com/i/how -修复错误- 1219多个-连接-服务器-或-共享-资源- - -相同用户

相关内容

  • 没有找到相关文章

最新更新