对任何可以提供帮助的人!我一直在尝试使用一个c#应用程序来管理命名管道在两台PC之间的网络中工作。这些应用程序可以在同一个PC上和同一个域内的PC上完美运行。但是,当一台电脑处于" Workgroup"一个是在域名上。服务器上的安全性不是问题,我可以尽可能地打开它。
背景资料:
似乎我无法访问远程服务器上的任何命名管道。代码:
// Client Connection
PipeStream pipe = new NamedPipeClientStream("192.168.1.102", "TEMP_PIPE", PipeDirection.InOut, PipeOptions.Asynchronous, TokenImpersonationLevel.None);
((NamedPipeClientStream)pipe).Connect();
// Server Connection
PipeSecurity pipeSecurity = new PipeSecurity();
pipeSecurity.AddAccessRule(new PipeAccessRule("Everyone", PipeAccessRights.ReadWrite | PipeAccessRights.CreateNewInstance, AccessControlType.Allow));
PipeStream pipe = new NamedPipeServerStream("TEMP_PIPE", PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances, PipeTransmissionMode.Message,
PipeOptions.Asynchronous, 0, 0, pipeSecurity);
当我尝试从客户端Connect()连接到服务器时,我收到一个"用户名或密码不正确。"错误。
我卡住了,不确定这是否是C#.Net命名管道问题或Windows问题?我倾向于认为我需要在Windows中以某种方式启用命名管道,但不确定如何(因为用户名/密码错误)。任何帮助是极大的赞赏。提前谢谢!
答案 0 :(得分:0)
我最近遇到了同样的问题,我的桌面上的所有内容都有效,但当我尝试“#34; talk"到平板电脑。我找到了这篇文章:
拒绝访问IPC $。 (特别是身份验证代理的管道,但IPC资源本身。)如果您的客户端尝试连接到不在客户端Windows域中的服务器,则会出现这种情况。
我通过将我的(以前失败的平板电脑)直接连接到我的网络(即不是无线连接)进行了测试。应用程序正常工作,命名管道按预期响应。
一些注意事项:我的所有系统都使用最新的Windows 10 Pro版本(带有最新补丁的Creator Update)。所有系统都具有启用了命名管道激活的4.7框架。此外,使用64位系统与32位平板电脑通信的测试仍然失败(无论物理连接与否,都会出现相同的错误)。 64位到64位工作正常。
事实证明,一旦我将平板电脑实际连接到网络一次,就必须启用某些设置。现在我可以无线使用平板电脑,命名管道也能正常运行。
我不是这方面的专家,所以我不确定后续步骤,但我认为我分享了我发现的内容(经过大量测试和更新后)。
希望这有帮助!