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. 将凭据放入凭据管理器后,我可以通过 UNC 访问目标路径(位于不同的服务器上),但仍无法通过 C#

4

1 回答 1

0

很可能您拥有的 ASP.Net 应用程序不在有权访问共享的帐户下运行。

诊断 - 调试代码并查看 和 的值是System.Environment.UserName什么System.Environment.UserDomainName

于 2012-12-11T07:29:34.037 回答