在看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"/>
时间: 2024-11-09 02:58:13