在项目中使用HttpListener为本地的Flex提供了一个图片传输的功能
注册地址:http://+:9527/icon
运行生产的程序出现:
-----------------------------------
UnHandledException Message:拒绝访问
在System.Net.HttpListener.AddAll()
在System.Net.HttpListener.Start()
.....
------------------------------------
为程序添加了管理员权限运行的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 } |