HTTP 无法注册 URL http://+:80/Temporary_Listen_Addresses/92819ef8-81ea-4bd9-
今天在练习wcf时,客户端调用服务端方法时出现异常。如下:
未处理System.ServiceModel.AddressAlreadyInUseException
Message="HTTP 无法注册 URL http://+:80/Temporary_Listen_Addresses/88c4ba08-ef25-4254-8811-870fffe5f9ea/,因为另一应用程序正在使用 TCP 端口 80。"
网络解决方法:
当WCF的服务使用session时,我们只有几种协议可供选择: 1. netTcp - 用这个协议是最好的,但有个重要问题是,IIS6不支持netTcp协议,所以要么我们用IIS7来host我们的WCF服务,要么就自己写一个host; 2. wsDualHttp - 因为Http协议天生不是双工通讯的,所以要想双工通讯,必须在客户端再启用一个端口来做回调端口,如果我们不在客户端的代理端做任何事情的话,很可能得到以下错误: HTTP 无法注册 URL http://+:80/Temporary_Listen_Addresses/08eee047-5225-4970- a777-084fe92620b9/。进程不具有此命名空间的访问权限(有关详细信息,请参阅http://go.microsoft.com /fwlink/?LinkId=70353)。
因为客户端默认要用Tcp 80端口来作为回调端口,可是作为网络程序,是需要本机的管理员权限才能注册的。
解决代码:
ServiceReference1.IcalculatorDuplexClient cd = new IcalculatorDuplexClient(InstanceContext);
Uri uri = new Uri(@"http://localhost:8000/");
if (cd.Endpoint.Binding.Name == "WSDualHttpBinding")
{
((WSDualHttpBinding)cd.Endpoint.Binding).ClientBaseAddress = uri;
}
但是,这样还有个问题,如果这个端口也不幸被占用了或者我们需要在XP端同时执行2个及2个以上客户端程序的话,会报错误“HTTP无法注册URL http://+:8000/。另一应用程序已使用HTTP.SYS注册了该URL”。
所以有人提出了这样一个解决方案:
int selectedPort = 8000;
bool goodPort = false;
IPAddress ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
//
while (!goodPort)
{
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, selectedPort);
TcpListener list = new TcpListener(ipLocalEndPoint);
try
{
list.Start();
goodPort = true;
list.Stop();
}
catch
{
selectedPort++;
}
} 上面这段程序通过尝试从8000起的端口,如果不能start就通过catch捕获到后,端口号自增1,直到启动起来为止。
from:http://blog.sina.com.cn/s/blog_6e93f12e0100zk44.html
HTTP 无法注册 URL http://+:80/Temporary_Listen_Addresses/92819ef8-81ea-4bd9-的更多相关文章
- ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系
ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间 ...
- wcf开启服务 HTTP 无法注册 URL 进程不具有此命名空间的访问权限
HTTP 无法注册 URL [url]http://127.0.0.1:9999/calculatorservice/metadata[/url].进程不具有此命名空间的访问权限 今天按照网上的例子开 ...
- 【异常】VS中运行HTTP 无法注册URL
参考资料 http://www.java123.net/detail/view-449670.html http://www.cnblogs.com/jiewei915/archive/2010/06 ...
- 注册URL模式与HttpHandler的映射关系
注册URL模式与HttpHandler的映射关系 ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHan ...
- Xcode6.4注册URL Scheme步骤详解
URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便 ...
- HTTP 无法注册 URL http://+:9999/CalculatorService/。进程不具有此命名空间的访问权限
转自:http://www.cnblogs.com/flyher/archive/2013/06/28/3161170.html 写WCF时在 1 host.Open(); 报错:HTTP 无法注册 ...
- (转)HTTP 无法注册 URL http://+:9999/CalculatorService/。进程不具有此命名空间的访问权限
写WCF时在 1 host.Open(); 报错:HTTP 无法注册 URL http://+:9999/CalculatorService/.进程不具有此命名空间的访问权限(有关详细信息,请参见 h ...
- 微信自定义菜单url默认80端口问题解决
微信自定义菜单url默认80端口的,但是有些服务器上可能配置了多个tomcat.或者是刚好你服务器上80端口被占用了.在这样的情况下,我们可以通过如下方式解决: 首先安装apache,关于apache ...
- springMVC源码分析--AbstractHandlerMethodMapping注册url和HandlerMethod对应关系(十一)
在上一篇博客springMVC源码分析--AbstractHandlerMethodMapping获取url和HandlerMethod对应关系(十)中我们简单地介绍了获取url和HandlerMet ...
随机推荐
- jsp中的forward和redirect的区别
转自http://blog.163.com/tsing_hua/blog/static/139622224201101110836644/ 一.调用方式 我们知道,在servlet中调用转发.重定向的 ...
- 关于PHP开发的9条建议
这篇文章主要介绍了关于PHP开发的9条建议,都是个人的一些经验总结,有需要的小伙伴可以参考下. 本文只是个人从实际开发经验中总结的一些东西,并不是什么名言警句,写出来有两个目的:一是时刻提醒自己要按照 ...
- MySQL添加外键时报错 ERROR 1215 (HY000): Cannot add foreign key constraint
1.数据类型 2.数据表的引擎 数据表 mysql> show tables; +------------------+ | Tables_in_market | +--------- ...
- php通过文件头检测文件类型通用类(zip,rar…)(转)
在做web应用时候,通过web扩展名判断上存文件类型,这个是我们常使用的.有时候我们这样做还不完善.可能有些人上存一些文件,但是他通过修改 扩展名,让在我们的文件类型之内. 单实际访问时候又不能展示( ...
- oracle15 pl/sql 分页
PL/SQL分页 编写分页过程 无返回值的存储过程 古人云:欲速则不达,为了让大家伙比较容易接受分页过程编写,我还是从简单到复杂,循序渐进的给大家讲解.首先是掌握最简单的存储过程,无返回值的存储过程: ...
- lambda与函数调用的转换
14.38 编写一个类令其检查某个给定的string对象的长度是否与一个阈值相等.使用该对象编写程序,统计并报告在输入的文件中长度为1的单词有多少个,长度为2的单词有多少个.......长度为10的单 ...
- 用NodeJs实现优先级队列PQueue
优先级队列(PriorityQueue)是个很有用的数据结构,很多编程语言都有实现.NodeJs是一个比较新潮的服务器语言,貌似还没有提供相关类.这些天有用到优先级队列,因为时间很充足,闲来无事,就自 ...
- Java基础知识强化之集合框架笔记52:Map集合之Map集合的遍历 键找值
1. Map集合的遍历 Map -- 夫妻对 思路: A:把所有的丈夫给集中起来. B:遍历丈夫的集合,获取得到每一个丈夫. C:让丈夫去找自己的妻子. 转换: A:获取所有的键 B:遍 ...
- Java基础知识强化之IO流笔记33:转换流之InputStreamReader的使用
1. InputStreamReader的使用 InputStreamReader(InputStream is):用默认的编码读取数据 InputStreamReader(InputStream i ...
- CSS hack常用方案(摘选)
邮箱因为默认了line-height?:170%,导致采用table元素时继承问题,可以采用line-height:50% 很好解决. 常 在使用float时,后面的显示不正常,因为继承了float了 ...