我正在寻找WCF命名管道的最小示例(我希望可以通过命名管道进行通信的两个最小应用程序,服务器和客户端。)
微软有一篇引人入胜的文章“ 入门指南” ,它通过HTTP描述了WCF,而我正在寻找有关WCF和命名管道的类似信息。
我已经在Internet上找到了几篇文章,但是它们有些“高级”。我需要一些最少的东西,只有强制性的功能,因此我可以添加代码并使应用程序正常运行。
我如何替换它以使用命名管道?
<endpoint address="http://localhost:8000/ServiceModelSamples/Service/CalculatorService" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator" contract="ICalculator" name="WSHttpBinding_ICalculator"> <identity> <userPrincipalName value="OlegPc\Oleg" /> </identity> </endpoint>
// Step 1 of the address configuration procedure: Create a URI to serve as the base address. Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/Service"); // Step 2 of the hosting procedure: Create ServiceHost ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), baseAddress); try { // Step 3 of the hosting procedure: Add a service endpoint. selfHost.AddServiceEndpoint( typeof(ICalculator), new WSHttpBinding(), "CalculatorService"); // Step 4 of the hosting procedure: Enable metadata exchange. ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); smb.HttpGetEnabled = true; selfHost.Description.Behaviors.Add(smb); // Step 5 of the hosting procedure: Start (and then stop) the service. selfHost.Open(); Console.WriteLine("The service is ready."); Console.WriteLine("Press <ENTER> to terminate service."); Console.WriteLine(); Console.ReadLine(); // Close the ServiceHostBase to shutdown the service. selfHost.Close(); } catch (CommunicationException ce) { Console.WriteLine("An exception occurred: {0}", ce.Message); selfHost.Abort(); }
如何生成客户端以使用命名管道?
我刚刚找到了 这个很棒的小教程。 链接断开 (缓存版本)
我也遵循了Microsoft的教程,这很好,但是我也只需要管道。
如您所见,您不需要配置文件和所有杂乱的东西。
顺便说一下,他同时使用HTTP和管道。只需删除与HTTP相关的所有代码行,您将得到一个纯管道示例。