WCF错误“没有端点监听...”

时间:2015-03-04 05:00:56

标签: c# wcf

我正在创建我的第一个WCF应用。当客户端位于同一台计算机上时,客户端可以与主机进行通信,但是无法通过LAN上的其他计两者都是控制台应用。

这是我的代码和配置。

客户端配置:

<?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>

主机代码:

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();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您可以从this post

获得一个想法

您也可以使用套接字编程。 Here是mutli-client,双向通信套接字编程的一个很好的例子。

答案 1 :(得分:0)

首先确保客户端使用的地址是服务器的正确位置。您的代码目前已硬编码到目的地...

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

...但服务器实际上是在192.168.100.6上运行吗?