Ash*_*ain 2 c++ http localhost winhttp
使用Windows HTTP API我在localhost上运行HTTP文件服务器.
这包括打电话HttpAddUrl(hRequestQueue, L"http://localhost:80/", NULL).
ERROR_ACCESS_DENIED除非用户以管理员身份运行应用程序,否则会失败.对于没有管理员权限的用户,我需要此功能.(无论如何,运行本地主机服务器的用户出了什么问题?这只是为了用户自己.)
我找到了一个针对Vista和XP的修补程序,它似乎旨在解决这个问题,但是对于Windows 7没什么.这篇文章暗示它已经在Vista SP1中修复了,而且我有Windows 7 SP1并且它仍然是一个问题 - 修复程序没有成功到Windows 7?
我还能做些什么来让服务器为非管理员运行吗?
这必须在系统级别配置,因为HTTP API使用http.sys(内核驱动程序).您可以使用以管理员权限执行的netsh.exe命令来授予对用户或应用程序的访问权限:
netsh http add urlacl url=http://localhost:80/ user=EVERYONE listen=yes delegate=no
Run Code Online (Sandbox Code Playgroud)