我有一个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无法从另一台计算机中提取文件?
答案 0 :(得分:1)
我假设您正在从Windows共享中读取文件,例如\\COMPUTER2\Share\Path\file.ext
。
运行服务器的帐户必须能够
LocalSystem和LocalService在#1处失败。没有网络访问权。
NetworkService为您提供#1,但在#2上失败 - 它是本地帐户,域控制器不知道它。
您需要的是在特定的域帐户下运行服务,而不是本地帐户,并将该帐户配置为能够远程登录到COMPUTER2并具有共享共享的读取权限。
或者,您可以通过不需要身份验证的不同协议公开您的文件,例如: ftp或http。