我无法打开ServicHost的连接。我最初使用过以前可以使用的8080端口,但是现在无法使用。我的App.Conifg出现了一些错误(如下)。请让我知道错误的出处。
这是一个简单的EmployeeWCF演示应用程序,具有IEmployeeService接口和EmployeeService类。
<?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();
}
}
}
其他信息:绑定实例已经与侦听URI'http://localhost:9090/EmployeeService'相关联。如果两个端点要共享相同的ListenUri,则它们还必须共享相同的绑定对象实例。这两个冲突的端点是在AddServiceEndpoint()调用中,配置文件中指定的,或者是AddServiceEndpoint()和config的组合。
答案 0 :(得分:0)
您的配置文件中可能有错字。第二个服务端点应该使用NetTcpBinding而不是NetHttpBinding,这将导致两个服务端点具有相同的侦听uri地址。
如果问题仍然存在,请随时与我联系。