我试图让我的网络服务写入我们内联网上的共享驱动器。我在StreamWriter上获得了IOException
string fullpath = path + "\\" + fileName;
using (System.IO.StreamWriter file = new System.IO.StreamWriter(fullpath, append))
{
file.WriteLine(contents);
file.Close();
}
我见过的例外,
IOException - Logon failure: unknown user name or bad password
如果我理解正确,IIS Web服务器的用户需要有权写入共享驱动器。我想知道现在是否可以硬编码凭证,写入共享驱动器以进行调试。如何为StreamWriter提供凭据,还是我应该使用其他机制?
我调查了模仿(using StreamWriter on server in C#),并希望尽可能使用它作为最后的手段。
答案 0 :(得分:0)
每当您以编程方式写入网络驱动器时,都会使用用于启动程序的用户名和密码。除非您使用域,否则会产生错误,因为网络驱动器无法识别您的用户名和密码。
所以要解决这个问题,您需要做的就是运行与其他用户相同的代码。这基本上是你想要避免的模拟内容,但是我找到了一个useful Stack Overflow Thread来解释这个,并且链接到你可以在代码中使用的包装类,以使事情更简单。
如此简单(来自thread):
using (Impersonation.LogonUser(domain, username, password, logonType))
{
// do whatever you want as this user.
}
这应解决您的问题