Reputation: 7301
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
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
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