在看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"
/>
|
本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/archive/2012/11/16/wcferror.html,如需转载请自行联系原作者