【问题标题】:Network file copy in .NET.NET 中的网络文件复制
【发布时间】:2011-10-18 17:05:05
【问题描述】:

我有一个运行 Samba 共享的 Ubuntu 机器,对所有人开放。我可以通过 \ip 地址访问它,所以我知道我可以完全访问它。

在我的应用程序中,我正在尝试以下操作,但仅通过 IP 地址无法通过 DNS 名称工作。

// val = ip address
File.Copy("\\\\" + val + "\\share\\vSphere\\vSphere.exe", Temp + "vSphere.exe", true);

我需要使用 IP 地址,因为正在使用 VPN 的人将无法让程序仅访问 ip 地址的 dns 名称。

【问题讨论】:

  • val 来自哪里?你能在这段代码执行之前检查它是否是一个IP地址吗?
  • 事实上,我会将这些参数中的表达式分配给局部变量,在调试器中停下来看看它们的设置。
  • 是否抛出异常?如果有,里面有什么细节吗?
  • 使用我得到的 IP 文件名、目录名或卷标语法不正确。使用 DNS 它工作得很好。 val 取自安装程序设置的注册表,并且是正确的。

标签: c# networking copy share sharing


【解决方案1】:

首先,尝试如下给出IP地址

File.Copy(@"\\192.100.1.23\share\vSphere\vSphere.exe", Path.combine(Temp ,"vSphere.exe"), true);

如果存在错误,请尝试使用模拟,提供用户名和密码

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

WindowsIdentity idnt = new WindowsIdentity(username, password);

WindowsImpersonationContext context = idnt.Impersonate();

File.Copy(@"\\192.100.1.23\share\vSphere\vSphere.exe", Path.combine(Temp ,"vSphere.exe"), true);

context.Undo();

【讨论】:

    猜你喜欢
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2014-07-16
    • 1970-01-01
    • 2019-07-20
    • 2011-07-18
    • 1970-01-01
    相关资源
    最近更新 更多