2017-01-25 100 views
1

給任何人誰可以幫助!我一直試圖讓一個C#應用程序與兩臺電腦之間的網絡通信,名爲管道。這些應用程序可以在同一臺電腦和同一個域內的電腦上完美工作。但是,當一臺電腦處於「工作組」而另一臺處於域中時,我遇到了問題。服務器上的安全不是問題,我可以儘可能開放。命名管道跨網絡給予「用戶名或密碼不正確」

背景資料:

  1. 客戶 - 個人電腦是一個域,可以通過C $ admin共享連接到服務器
  2. 服務器 - 不在域中,應用程序運行作爲控制檯,防火牆禁用,啓用「允許入站文件和打印機共享」端口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中以某種方式啓用命名管道,但不知道如何(因爲用戶名/密碼錯誤)。任何幫助是極大的讚賞。提前致謝!

回答

0

我最近遇到了同樣的問題,其中一切都在我的桌面上工作,但當我試圖與平板電腦「交談」時失敗。我發現這篇文章:

https://www.ca.com/us/services-support/ca-support/ca-support-online/knowledge-base-articles.tec385226.html

訪問IPC $被拒絕。 (特別是不是身份驗證代理的管道,但是IPC資源本身。)如果您的客戶端嘗試連接到不在客戶端Windows域中的服務器,則會出現這種情況。

我通過將我的(以前發生故障的平板電腦)直接連接到我的網絡(即不是無線連接)來測試此情況。應用程序工作並命名管道按預期作出響應。

一些注意事項:我所有的系統都在最新的Windows 10 Pro版本(Creator Update帶有最新補丁)上。所有系統都具有啓用了命名管道激活的4.7框架。此外,使用64位系統與32位平板電腦通話的測試仍然失敗(無論物理連接與否都是同樣的錯誤)。 64位到64位工作正常。

事實證明,一旦我將平板電腦物理連接到網絡一次,必須啓用某些設置。現在我可以無線使用平板電腦,並且命名管道正常工作。

我不是這方面的,所以我不知道的下一步驟,但想我會分享我發現了什麼(測試和更新了不少後。)

希望這有助於專家!

相關問題