0

私は正常に動作している次のコードを持っています。

public Foo GetConfiguration(string file)
{
    lock (_lockObj)
    {
        Foo foo = new Foo ();
        try
        {
            XmlSerializer serializer = new XmlSerializer(typeof (Foo));
            using (Stream reader = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                foo = (Foo) serializer.Deserialize(reader);
            }
        }
        catch (Exception ex)
        {
            Log.Error(string.Format("Failed to read foo '{0}'. Error: '{1}'", file, ex));
        }
        return foo;
    }
}

}

関数の入力file値が unc 共有フォルダーの場合、次の例外が発生します。

System.IO.IOException: Logon failure: unknown user name or bad password.

どうすれば克服できますか?

FileStream に資格情報を渡すにはどうすればよいですか?

ありがとう

編集: 1. このプログラムは、ローカル システム アカウントの Windows サービスでホストされます。

  1. サービスはWin2008上にあります

  2. サーバーで、資格情報マネージャーに資格情報を追加しました(自動ログオン用の資格情報を保存します)

  3. Credential Manager に資格情報を入力した後、UNC 経由でターゲット パス (別のサーバー上) に到達できますが、C# 経由では動作しません。

4

1 に答える 1

0

ほとんどの場合、共有にアクセスできるアカウントで実行されていない ASP.Net アプリケーションを使用しています。

診断するには - コードをデバッグして、 と の値を確認しSystem.Environment.UserNameますSystem.Environment.UserDomainName

于 2012-12-11T07:29:34.037 に答える