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();

出力:

ユーザー: ドメイン\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

4

1 に答える 1

1

(上記のコメントで回答および解決済み...)

名前"yesvirginiabeach"が正しいことを再確認してください。のように見える"i"が実際には別の文字である Unicode 文字のようなクレイジーなものがないことを確認してください。(解決策は、誰かがフォルダーの名前のスペルを間違えたことが判明しました"yesvirgniabeach"。)

同様の問題については、共有を列挙して、プログラムが何を認識できるかを確認することができます。コマンドもありますNET USE(コマンド プロンプトを開いて と入力しnet use /helpます。このツールは、現在アクセスされているすべての共有を表示し、コマンド プロンプトから新しい共有を開くことができます。これにより、有用なステータス メッセージが表示されることがあります)。

于 2013-12-19T22:12:30.040 に答える