WIN7中 HttpListener 拒絕訪問 異常解決 C#


在項目中使用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
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM