C#Windows服务无效凭据

本文关键字:无效 服务 C#Windows | 更新日期: 2023-09-27 18:28:51

我有一个C#windows服务,用于从同一域上的另一台机器中提取一些文件。当我将windows服务作为控制台应用程序运行时,它会从另一台计算机中提取文件。但是,将其作为windows服务运行会返回:192.168.100.53(ServerNotFoundMIPException)的凭据无效

我试图将服务"登录为本地服务"或"网络服务"更改为"登录",但没有成功。以下是OnStart方法:[PermissionSet(SecurityAction.Demand,Name="FullTrust")]protected override void OnStart(string[]args)

在应用程序属性的"安全"部分,我选中了"启用ClickOnce安全设置",这是一个完全信任的应用程序。

我使用的凭证类型是:

case CredentialType.Windows:
{
var nc = CredentialCache.DefaultNetworkCredentials;

我的窗口无法从另一台计算机中提取文件,我缺少了什么?

C#Windows服务无效凭据

我假设您正在从Windows共享读取文件,如''COMPUTER2'Share'Path'file.ext

服务器运行的帐户必须能够进行

  1. 接入网络
  2. 使用域控制器进行身份验证
  3. 能够从网络登录COMPUTER2(通过"控制面板"->"管理工具"->"本地安全策略"分配)
  4. 对有问题的共享拥有访问权限

LocalSystem和LocalService在#1失败。没有网络访问。

NetworkService给你#1,但在#2失败-这是一个本地帐户,域控制器不知道它。

您需要在特定的帐户下运行服务,而不是本地帐户,并将该帐户配置为能够远程登录COMPUTER2并具有共享共享的读取权限。

或者,您可以通过不需要身份验证的不同协议公开文件,例如ftp或http。