Je recherche un exemple minimal de tuyaux nommés WCF (j'attends deux applications minimales, serveur et client, qui peuvent communiquer via un tuyau nommé.)
Microsoft a le brillant article Getting Started Tutorial qui décrit WCF via HTTP, et je recherche quelque chose de similaire à propos de WCF et des canaux nommés.
J'ai trouvé plusieurs articles sur Internet, mais ils sont un peu "avancés". J'ai besoin de quelque chose de minimal, uniquement des fonctionnalités obligatoires, afin que je puisse ajouter mon code et faire fonctionner l'application.
Comment remplacer cela pour utiliser un tube nommé?
<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>
Comment remplacer cela pour utiliser un tube nommé?
// 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();
}
Comment générer un client pour utiliser un canal nommé?