win7中用 httplistener 出现 503 错误的问题
来源:互联网 发布:知乎 韩信 刘邦男宠 编辑:程序博客网 时间:2024/06/06 01:26
UnHandledException Message:拒绝访问
在System.Net.HttpListener.AddAll()
在System.Net.HttpListener.Start()
网上查了下,好像是UAC权限的问题,网上找到了下面的解决办法:
为程序添加了管理员权限运行的manifest配置文件,依然不能解决,手动设置程序以管理员权限运行可以通过
解决改问题的方法:
以管理员权限运行cmd
输入: netsh http add urlacl url=http://+:9527/icon user=DOMAIN\user
注:DOMAIN 即计算机名
例如我的user=cmdszh_comperny\cmdszh
把以上操作写为C#代码如下(主程序一定在manifest中配置UAC权限)
public static void AddAddress(string address)
{
try
{
AddAddress(address, Environment.UserDomainName, Environment.UserName);
}catch(Exception ex){}
}
public static void AddAddress(string address, string domain, string user)
{
string argsDll = String.Format(@"http delete urlacl url={0}", address);
string args = string.Format(@"http add urlacl url={0} user={1}\{2}", address, domain, user);
ProcessStartInfo psi = new ProcessStartInfo("netsh", argsDll);
psi.Verb = "runas";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
Process.Start(psi).WaitForExit();//删除urlacl
psi = new ProcessStartInfo("netsh", args);
psi.Verb = "runas";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
Process.Start(psi).WaitForExit();//添加urlacl
}
后续问题,按照上面说的设置好了之后,在某台电脑上输入保留的url,居然不行,每次都是提示503错误。从127.0.0.1改成localhost,改来改去死活不行,郁闷至极,觉得是不是这台电脑上的某个服务没有启动,找了找实在太多了也无果而终。第二天来了后试了试其它的端口,结果就可以了。于是想研究一下httplistener机制,网上看了一些介绍,确实了解了很多,关于WCF机制,但是好像没有跟这个问题相关的。大致浏览了下,自己还是了解的太浅,以后有时间继续研究。
突然出来了一个aha moment,因为上面主要是添加urlacl链接,于是想研究一下netsh命令的用法,能不能把之前添加的url列出来,到这个时候,已经开始往正确的道路上走了。于是网上搜了netsh的用法,并且自己也用“?”选项列出帮助,最终列出所有添加的url的时候,一下子就明白了,因为在监听端口上有另外一个地址接收了请求,而实际并没有对应的服务。
具体是这样,刚开始测试,用了一个临时uri http://localhost:10000/myuri/ 而出现503的链接是http://localhost:10000/myuri.rem/ 这样就清楚了,10000端口上的myuri并没有服务,而是在myuri.rem上提供了服务。但是注册的myuri提前监听了来自10000上的请求,而它没有对应的服务去回应,自然就是503了。
- win7中用 httplistener 出现 503 错误的问题
- 解决在win7中用vs2010编译openssl中出现把警告当做错误的报错问题
- win7中用MinGW编译x264出现"No working C compiler found."错误
- win7共享Internet时出现的错误
- win7出现无法连接到代理服务器的错误,不能上网的问题的解决
- 自定义控件的构造方法中用this出现的错误
- VC中用ADO连接SQL SERVER出现的错误
- win7中用virtualbox不能安装虚拟机的问题
- win7 && win8 下安装SqlServer 2008出现错误无法将对象实例化的问题
- win7 32位下安装MySQL出现的---1067系统错误---问题及解决
- win7 安装oralce10g 出现未知错误、网络配置未执行的问题及解决方案
- 关于win7 64位 sp1 旗舰版安装.net FrameWork时出现的“严重错误”问题
- httplistener
- 在win8中用vs2012打开以前win7中用vs2010编写的工程,出现工程不可用的解决方法。
- Cocos2d-x win7 + vs2008出现的问题
- win8装win7时出现的问题
- 原装Win8 改 Win7 出现的问题
- sqlserver中用了user关键子出现的问题
- 新的开始
- liunx下查看一层目录的占用空间大小
- Android 使用Loader示例
- IOS下载程序自动安装
- 设计模式(2)——组合模式(Composite Pattern)
- win7中用 httplistener 出现 503 错误的问题
- 针对PHPCMS绑定二级域名地址不正确问题分析
- clone报错:afmkinit.sh失败error while loading shared libraries:librt.so.1
- 110_leetcode_Best Time to Buy and sell Stock II
- easyDialog v2.0
- 简要分析如何对汽车的起动机进行检修
- centos 安装vm74 + jeffy插件
- 深入理解JavaScript系列 ----(7):SOLID五大原则之开闭原则OCP
- 最长上升子序列(模板)