小编典典

WCF命名管道的最小示例

c#

我正在寻找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();
}

如何生成客户端以使用命名管道?


阅读 269

收藏
2020-05-19

共1个答案

小编典典

我刚刚找到了 这个很棒的小教程 链接断开
缓存版本

我也遵循了Microsoft的教程,这很好,但是我也只需要管道。

如您所见,您不需要配置文件和所有杂乱的东西。

顺便说一下,他同时使用HTTP和管道。只需删除与HTTP相关的所有代码行,您将得到一个纯管道示例。

2020-05-19