我有一个(.NET 4.0)Windows服务(在" NT AUTHORITY \ Network Service"凭证下运行)在不同的机器上运行,这些服务正试图通过命名管道相互通信。 这两台机器都是WORKGROUP的一部分,而不是域名。
这是命名管道客户端的创建方式:
ClientStream = new NamedPipeClientStream(%ServerName%, PipeName, PipeDirection.InOut, PipeOptions.Asynchronous);
这是命名管道服务器的创建方式:
ServerStream = new NamedPipeServerStream(PipeName, PipeDirection.InOut, 254, PipeTransmissionMode.Message, PipeOptions.Asynchronous);
当客户端尝试连接到服务器时(通过调用ClientStream.Connect()),抛出以下异常(在客户端):
System.IO.IOException:登录失败:未知的用户名或错误 密码
在安全事件日志(服务器端)中发现以下安全审核失败:
登录失败:原因:未知用户名或密码错误用户 名称:%ClientName%$域:工作组登录类型:3登录过程: NtLmSsp身份验证包:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 工作站名称:%ClientName%
登录尝试者:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0登录帐户: %ClientName%$ Source Workstation:%ClientName%错误代码:0xC0000064
我尝试了以下(没有成功):
客户端似乎显示其计算机帐户(%ClientName%$ )凭据以连接到服务器,但服务器拒绝这些凭据(由上面的安全审核失败证明)
有没有办法在这两个网络服务之间建立命名管道连接?