エクスプローラーでネットワーク共有を確認できますが、アプリケーションでアクセスしようとすると、「ネットワーク名が見つかりません」というメッセージが表示されます。
同じサーバーにアクセスできる他の共有があるため、これは非常に奇妙です。例えば:
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();
出力:
ユーザー: ドメイン\myusername \\example01\vaqua : 10/22/2013 7:34:30 AM \\example01\vaqua-pub : 10/22/2013 7:57:42 AM \\example01\yesvirginiabeach : ネットワーク名が見つかりません。 \\example01\yesvirginiabeach-pub : 2013 年 4 月 4 日 10:31:07 AM
エクスプローラーで \example01 にこれら 4 つの共有をすべて表示できますが、この\example01\yesvirginiabeach
共有は私のアプリケーションには存在しません。
これら 4 つの共有はすべて同じアクセス許可を持ち、アプリが自分の資格情報で実行されていることを確認するために自分のユーザー名も出力します。
管理者にディレクトリを再共有してもらい、アクセス許可を再適用してもらいましたが、役に立ちませんでした。
解決策: 管理者が共有名のスペルを間違えました:
\\example01\yesvirginiabeach
として\\example01\yesvirgniabeach
。