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;
我的窗口无法从另一台计算机中提取文件,我缺少了什么?
我假设您正在从Windows共享读取文件,如''COMPUTER2'Share'Path'file.ext
。
服务器运行的帐户必须能够进行
- 接入网络
- 使用域控制器进行身份验证
- 能够从网络登录COMPUTER2(通过"控制面板"->"管理工具"->"本地安全策略"分配)
- 对有问题的共享拥有访问权限
LocalSystem和LocalService在#1失败。没有网络访问。
NetworkService给你#1,但在#2失败-这是一个本地帐户,域控制器不知道它。
您需要在特定的域帐户下运行服务,而不是本地帐户,并将该帐户配置为能够远程登录COMPUTER2并具有共享共享的读取权限。
或者,您可以通过不需要身份验证的不同协议公开文件,例如ftp或http。