1. 程式人生 > >win7中用 httplistener 出現 503 錯誤的問題

win7中用 httplistener 出現 503 錯誤的問題

服務 主程序 lin main target tom {0} bsp rac

項目中須要用httplistener提供一個簡單的httpserver服務。可是執行都是提示:

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
}


原文地址:http://www.cnblogs.com/cmdszh/archive/2012/08/16/httplistener.html

win7中用 httplistener 出現 503 錯誤的問題