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

时间:2022-04-25
本文章向大家介绍解决 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"/>