解决 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"/>

  

 

时间: 2024-11-09 02:58:13

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

WCF后续之旅(14):TCP端口共享

基于TCP/IP协议簇的对等网络通信下,相互通信的应用程序运行各自的进程中,出于应用层的进程将数据局封装成数据报,并通过传输层的TCP或者UDP进行网络通信.而TCP和UPD则通过一个16bit的端口来识别不同的应用程序. 对于一些常用网络服务,他们都有一个知名的端口好与之匹配.比如,FTP服务是用的TCP端口为21:Telnet服务的TCP端口为23等等.而对于客户端通常对所使用的端口并不关心,只需要保证端口在本机是唯一的就可以了,这样的端口又成为临时端口,临时端口一般在1024到5000之间

求问各位大神,同一个WCF服务类在一台电脑上的多个端口开启,如何能在服务类内部获取当前服务是在哪个端口上

问题描述 求问各位大神,同一个WCF服务类在一台电脑上的多个端口开启,如何能在服务类内部获取当前服务是在哪个端口上 解决方案 解决方案二:System.ServiceModel.OperationContext.Current.Channel.LocalAddress.Uri.Port解决方案三:引用1楼fate23409的回复: System.ServiceModel.OperationContext.Current.Channel.LocalAddress.Uri.Port 貌似是正确的,共

asp.net 未在本地计算机上注册“OraOLEDB.Oracle”提供程序

问题描述 vs2013调试正常,通过iis访问ORACLE数据库,提示未在本地计算机上注册"OraOLEDB.Oracle"提供程序 解决方案 解决方案二:服务器上也要安装访问数据库的组件解决方案三:看看这篇文章:'OraOLEDB.Oracle'providerisnotregistered解决方案四:这里的讨论:OraOLEDB.Oracleproviderisnotregisteredonthelocalmachine

利用注册表限制特定程序运行—注册表使用全攻略之十四_注册表

利用注册表限制特定程序运行-注册表使用全攻略之十四 对于一些与系统密切相关的程序,如果随意让其他人使用,非常容易造成死机甚至系统崩溃.通过系统本身的注册表来限制特定程序的运行. 1.一键锁通关 我们要做的是在注册表中加入"RestrictRun"键值,以此来限制绝大多数程序的运行 . 运行"Regedit"打开注册表编辑器,展开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\E

解决CloudStack中关于注册ISO模版的问题

在添加示例的时候需要用到模版或者ISO 但是在注册ISO的时候出现错误:提示连接被拒绝: 解决方法: 在控制面板中的全局设置里搜索如下参数 secstorage.allowed.internal.sites 这个参数默认是0.0.0.0 是禁止下载的 在注册ISO镜像的时候会提示失败状态:Status Connection refused 在这里添加你的NFS服务器的地址,和secondary 存储的地址,然后重启cloudstack-managment 再次注册模版即可. 已成功注册ISO 本

关于WCF在IIS8注册的问题

原文 http://social.microsoft.com/Forums/id-ID/30cf8a24-2719-4c1c-b035-3d186fbfc09c/wcfiis8?forum=wcfzhchs 装完了之后部署WCF出现以下错误. ---------------------------------------------- HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理. <fieldset style="padd

多特下载站中改首页www.2345.com的解决修改方法_注册表

多特下载站中改首页2345.com的修改方法 多特的软件能不用就不用,解决方法就是把下面的文件保存为ok.reg文件,导入到注册表,直接双击即可,杀毒软件有提示就允许就可以了 复制代码 代码如下: Windows Registry Editor Version 5.00   [HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\shell\OpenHomePage\Command]   @="\"C:\\Prog

串口大师提示找不到串口的解决办法,增加注册表项目。

          今天进行串口调试提示找不到串口,查了注册表发现串口的注册值:\Device\ProlificSerial2 ,值COM4,但是串口大师还是找不到串口,注册表中没有项目,解决办法如下: 1 .新建一个TXT文档,键入以下内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM] "\\Device\\Serial1"="COM1&quo

解决ICP备案时,注册用户信息的验证码不显示的问题

ICP备案时,注册用户信息的验证码不显示? ICP备案时,注册用户信息的验证码不显示? 注册用户信息都填好了 可最后的验证码无法显示 最后,用IP访问就可以显示了,去试试吧. http://219.143.225.7/ 祝顺利!