打开WCF服务主机连接时出错

时间:2019-02-16 06:38:33

标签: wcf binding port

我无法打开ServicHost的连接。我最初使用过以前可以使用的8080端口,但是现在无法使用。我的App.Conifg出现了一些错误(如下)。请让我知道错误的出处。

这是一个简单的EmployeeWCF演示应用程序,具有IEmployeeService接口和EmployeeService类。

App.Config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
  <system.serviceModel>
    <services>
      <service name="EmployeeWCFService.EmployeeService" behaviorConfiguration="mexBehaviour">
        <endpoint name ="httpBind" address="EmployeeService" binding="basicHttpBinding" contract="EmployeeWCFService.IEmployeeService" ></endpoint>
        <endpoint name ="netTcpBind" address="EmployeeService" binding="netHttpBinding" contract="EmployeeWCFService.IEmployeeService" ></endpoint>
        <endpoint name="mexBind" address="mex" binding="mexHttpBinding" contract="IMetadataExchange" ></endpoint>
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:9090"/>
            <add baseAddress="net.tcp://localhost:9093"/>
          </baseAddresses>
        </host>
      </service>

    </services>

    <behaviors>
      <serviceBehaviors>
        <behavior name="mexBehaviour">
          <serviceMetadata httpsGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

  </system.serviceModel>
</configuration>

控制台代码:

class Program
    {
        static void Main(string[] args)
        {
            using (ServiceHost host = new ServiceHost(typeof(EmployeeWCFService.EmployeeService)))
            {
                host.Open();
                Console.WriteLine("The connection host is opened at the time " + DateTime.Now);
                Console.ReadLine();
            }
        }
    }

打开WCF Servicehost时出现错误:

  

其他信息:绑定实例已经与侦听URI'http://localhost:9090/EmployeeService'相关联。如果两个端点要共享相同的ListenUri,则它们还必须共享相同的绑定对象实例。这两个冲突的端点是在AddServiceEndpoint()调用中,配置文件中指定的,或者是AddServiceEndpoint()和config的组合。

1 个答案:

答案 0 :(得分:0)

您的配置文件中可能有错字。第二个服务端点应该使用NetTcpBinding而不是NetHttpBinding,这将导致两个服务端点具有相同的侦听uri地址。
如果问题仍然存在,请随时与我联系。