我有以下代码正常工作。
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服务
服务在Win2008上
在服务器上,我将凭证添加到Credential Manager(存储凭据以进行自动登录)
将凭据放入凭证管理器后,我可以通过UNC到达目标路径(位于不同的服务器上),但仍无法通过C#
答案 0 :(得分:0)
很可能你和ASP.Net应用程序没有在有权访问共享的帐户下运行。
要诊断 - 调试代码并查看System.Environment.UserName
和System.Environment.UserDomainName
的值。