Phi*_*hil 5 c# windows-services credentials windows-share network-share
我有两台装有 Windows Server 2003 的计算机。一台计算机在网络上有一些共享文件夹,另一台计算机有一个 Windows 服务(用 C# 编写,在网络服务帐户下运行)需要访问这些共享文件夹。
以下代码作为登录用户工作正常,但在网络服务帐户下执行时会引发异常。
File.WriteAllText(@"C:\temp\temp.txt", File.ReadAllLines(@"\\NetworkServer\Test\test.txt")[0]);
Run Code Online (Sandbox Code Playgroud)
异常消息是Logon failure: unknown user name or bad password
。如何让此代码在网络服务帐户下工作?它是 Windows Server 2003 中的一个设置,还是我需要为此添加一些代码才能使其工作?
在网络共享上,您需要为运行该服务的服务器上的“网络服务”帐户添加权限。虽然这可行,但 @nicholas 指出,这可能会为过于广泛的用户群体提供对共享的访问权限。
另一种选择(在我看来更好的选择)是创建一个域帐户,然后授予该帐户对共享的读/写权限。然后,您将服务配置为“以”具有适当权限的域帐户“运行”。