s.k.paul
s.k.paul

Reputation: 7301

WCF error "there was no endpoint listening at ..."

I'm creating my first WCF app. Client can communicate with host when those are on same computer, but failed from other computer on LAN. Both are console app.

Here is my code and config.

Client config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <system.serviceModel>
      <bindings>
         <wsHttpBinding>
            <binding name="WSHttpBinding_ICalculator" />
         </wsHttpBinding>
      </bindings>
      <client>
         <endpoint name="WSHttpBinding_ICalculator"
             address="http://192.168.100.6:8000/ServiceModelSamples/Service/CalculatorService"
             binding="wsHttpBinding" 
             bindingConfiguration="WSHttpBinding_ICalculator"
             contract="ServiceReference1.ICalculator">
             <identity>
                <userPrincipalName value="saumitra\skpaul" />
             </identity>
         </endpoint>
      </client>
   </system.serviceModel>
</configuration>

Host code:

class Program
{
    static void Main(string[] args)
    {
        // Step 1 Create a URI to serve as the base address.
        Uri baseAddress = new Uri("http://Localhost:8000/ServiceModelSamples/Service");

        // Step 2 Create a ServiceHost instance
        ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), baseAddress);

        try
        {
            // Step 3 Add a service endpoint.
            selfHost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(), "CalculatorService");

            // Step 4 Enable metadata exchange.
            ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
            smb.HttpGetEnabled = true;
            selfHost.Description.Behaviors.Add(smb);

            // Step 5 Start 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();
        }
    }
}

Upvotes: 2

Views: 657

Answers (2)

Code It
Code It

Reputation: 396

You can get an idea from this post

You can also use Socket Programming. Here is a very good example for mutli-client, two-way communication socket programming.

Upvotes: 1

Phil Wright
Phil Wright

Reputation: 22946

First ensure that the address used from the client is the correct location of the server. Your code is currently hard coded to the destination as...

<endpoint address="http://192.168.100.6:8000/

...but is the server actually running on 192.168.100.6?

Upvotes: 0

Related Questions