2

我可以在资源管理器中看到网络共享,但是当我尝试在我的应用程序中访问它时,我得到“找不到网络名称”。

这很奇怪,因为同一台服务器还有我可以访问的其他共享。例如:

string[] example_directories = new string[]{        
    Path.Combine(@"\\example01","vaqua"),
    Path.Combine(@"\\example01","vaqua-pub"),
    Path.Combine(@"\\example01","yesvirginiabeach"),
    Path.Combine(@"\\example01","yesvirginiabeach-pub")
};

// output username
Console.WriteLine("User: " + WindowsIdentity.GetCurrent().Name);

// output each response to Directory.Exists 
foreach (string directory in example_directories)
    try
    {
        Console.WriteLine(directory + " : " + Directory.GetCreationTime(directory));
    }
    catch(Exception e)
    {
        Console.WriteLine(directory + " : " + e.Message.Trim());
    }

Console.Read();

输出:

用户:域\我的用户名
\\example01\vaqua:2013 年 10 月 22 日上午 7:34:30
\\example01\vaqua-pub:2013 年 10 月 22 日上午 7:57:42
\\example01\yesvirginiabeach :找不到网络名称。
\\example01\yesvirginiabeach-pub:2013 年 4 月 4 日上午 10:31:07

我可以在资源管理器中的 \example01 上看到所有这四个共享,但\example01\yesvirginiabeach我的应用程序中不存在该共享。

这四个共享都具有相同的权限,我什至打印出我的用户名以确保应用程序以我的信誉运行。

我让我们的管理员重新共享目录并重新应用权限无济于事。

解决方案:我的管理员拼错了共享名称:

\\example01\yesvirginiabeach作为\\example01\yesvirgniabeach.

4

1 回答 1

1

(在上面的评论中回答并解决了......)

仔细检查名称"yesvirginiabeach"是否正确。确保没有什么像 Unicode 字符那样疯狂,它看起来像一个"i"但实际上是一个不同的字符。(解决办法原来是有人把文件夹的名字拼错了"yesvirgniabeach"。)

对于类似的问题,可以尝试枚举共享以查看程序可以看到的内容。还有NET USE命令(打开命令提示符并键入net use /help;此工具显示当前正在访问的所有共享,并且可以从命令提示符打开新共享,有时会提供有用的状态消息)。

于 2013-12-19T22:12:30.040 回答