WCF:程序化设置端点

时间:2012-06-15 13:33:56

标签: c# .net wcf

我正在尝试以编程方式设置WCF连接的结束点。

我无法,下面是我使用代码的代码有人帮助识别出错了什么?

        Uri wsBaseAddress = new Uri("http://localhost:27198/");

        ServiceHost host = new ServiceHost(typeof(ServiceClient), wsBaseAddress);

        WSHttpBinding wshttpbinding = new WSHttpBinding();

        host.AddServiceEndpoint(typeof(IService), wshttpbinding, "ServiceClient");
        host.AddServiceEndpoint(typeof(IService), wshttpbinding,
           "http://localhost:27198/Service.svc");

        host.Open();

修改

  

错误:HTTP无法注册URL“http:// +:27198 /”,因为TCP端口   另一个应用程序正在使用27198。“

谢谢

2 个答案:

答案 0 :(得分:1)

  

HTTP无法注册URL“http:// +:27198 /”,因为另一个应用程序正在使用TCP端口27198。“

这几乎说明了一切。还有另一个应用程序正在侦听该端口,并且由于在给定时刻只有一个应用程序可以绑定到给定端口和IP,因此您的程序不能。

netstat -abn中执行cmd以查看最可能是ASP.NET Development Server的程序。

如果没有其他程序绑定到该端口,您可以尝试以管理员身份运行Visual Studio。

答案 1 :(得分:0)

下面的语句未提供服务名称,但在最后一个语句中未使用添加端点

 Uri wsBaseAddress = new Uri("http://localhost:27198/");

应该是

 Uri wsBaseAddress = new Uri("http://localhost:27198/Service");

您必须提供服务名称而不是服务文件名,扩展名为

更改

host.AddServiceEndpoint(typeof(IService), wshttpbinding,
           "http://localhost:27198/Service.svc");

 host.AddServiceEndpoint(typeof(IService), wshttpbinding,
           "http://localhost:27198/Service");