解决 wcf HTTP 无法注册 另一应用程序正在使用 TCP 端口 80

在看wcf广播事件的程序时候,运行到

ILogService service = DuplexChannelFactory<ILogService>.CreateChannel(client,
                new WSDualHttpBinding(), new EndpointAddress("http://localhost:8567/server"));

报出个异常 

HTTP 无法注册 URL http://+/Temporary_Listen_Addresses/144ff7cb-10a4-4836-b76a-1a516da4ebda/,因为另一应用程序正在使用 TCP 端口 80。

当我们用WSDualHttpBinding进行双工通信时

在默认情况下,回调接口会使用80端口,clientBaseAddress为http://localhost:80  而80端口已经被IE浏览器占用,

如果我们不在客户端的代理端做任何事情的话,很可能出这个错误

解决方法:

1修改代码

DuplexChannelFactory<ILogService> channelFactory = new DuplexChannelFactory<ILogService>(instanceContext);

WSDualHttpBinding ws = new WSDualHttpBinding();
ws.ClientBaseAddress = new Uri("http://localhost:8566");
channelFactory.Endpoint.Binding = ws;

channelFactory.Endpoint.Address = new EndpointAddress("http://localhost:8567/server");
ILogService service = channelFactory.CreateChannel();

2修改配置文件

<wsDualHttpBinding clientBaseAddress="http://localhost:8566/server"/>

  

 

posted @ 2012-11-16 11:30  li-peng  阅读(2327)  评论(0编辑  收藏  举报