給任何人誰可以幫助!我一直試圖讓一個C#應用程序與兩臺電腦之間的網絡通信,名爲管道。這些應用程序可以在同一臺電腦和同一個域內的電腦上完美工作。但是,當一臺電腦處於「工作組」而另一臺處於域中時,我遇到了問題。服務器上的安全不是問題,我可以儘可能開放。命名管道跨網絡給予「用戶名或密碼不正確」
背景資料:
- 客戶 - 個人電腦是一個域,可以通過C $ admin共享連接到服務器
- 服務器 - 不在域中,應用程序運行作爲控制檯,防火牆禁用,啓用「允許入站文件和打印機共享」端口445.
看來我無法訪問遠程服務器上的任何命名管道。代碼:
// 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);
當我嘗試從客戶端連接到服務器連接()我收到「用戶名或密碼不正確。」錯誤。
我被卡住了,不知道這是C#.Net命名管道問題還是Windows問題?我傾向於相信我需要在Windows中以某種方式啓用命名管道,但不知道如何(因爲用戶名/密碼錯誤)。任何幫助是極大的讚賞。提前致謝!