在没有管理员权限的情况下运行IIS Express

28
我已升级到带有VS2010 SP1的iis express 7.5。在发布说明中指定,express能够在不需要管理员权限的情况下运行。当我尝试从命令行(powershell cmd line)运行时,我收到了与使用IIS Express 7运行时一样的"访问被拒绝"错误消息(如下所示)。据我所知,仍需要管理权限。
有人能够在没有管理员权限的情况下运行吗?
详细的错误消息为:
Failed to call HttpAddUrl with http://MACHINE-NAME:80/
Failed to register URL "http://MACHINE-NAME:80/" for site "WebSiteName" application "/". Error description: Access is denied. (0x80070005)
3个回答

39

还可以将IIS Express作为非管理员用户在保留端口上运行,并为外部流量提供请求服务,但需要配置HTTP服务以允许此操作。在Windows 7机器(还有Vista,Server 2008等)上,Netsh Commands for Hypertext Transfer Protocol (HTTP) technet页面详细描述了这一点。正如您所期望的,您需要以管理员身份运行配置命令。添加和删除权限的命令示例如下:

netsh http add urlacl url=http://YOUR-MACHINE-NAME:80/ user=DOMAINNAME\GroupOrUserName
netsh http delete urlacl url=http://YOUR-MACHINE-NAME:80/

这对我在Windows 7上有效,尽管我无法验证,但我期望Httpcfg.exe:HTTP配置实用程序可用于允许在早期版本的Windows(XP,Server 2003)上实现此功能。


2
请注意,如果您使用的是非英语版本的Windows操作系统,某些组或保留名称可能已本地化。例如,在法语版的Windows中,user(用户)会变成'Tout le monde'(所有人)。 - Sebastien F.

34

请查看这里的内容,根据您在使用IIS Express时正在做什么,了解需要管理员访问权限和不需要的内容:http://learn.iis.net/page.aspx/1003/running-iis-express-without-administrative-privileges/

以下任务需要管理员权限才能执行:

* Use a reserved port such as 80 or 443.
* Serve requests for external traffic.
* Configure a custom SSL certificate.
* Run SSL using a port outside the range of 44300 to 44399. 

所以,如果您正在执行以上任何操作,需要管理员访问权限。

这与7或7.5无关。


IIS Express,Windows 8 Pro。错误描述:拒绝访问。(0x80070005)而且这是一个普通的MVC4“互联网”站点,没有做上述任何操作。如果我得到解决方案,我会发布链接。 - Roger Willcocks
1
明白了。重新阅读日志后,它正在尝试访问http://<MACHINENAME>:67887/和http://localhost。 - Roger Willcocks
1
不得不笑,发现我哥哥在我之前三年也遇到了同样的错误信息!给Roger一个拳头碰一下 - Donnelle
问题出在端口号上了!我使用的是54237作为HTTPS端口,太蠢了。谢谢。 - redwards510

0

以管理员身份打开CMD并运行以下语句

netsh http add iplisten ipaddress=::


为什么这个建议有用? - Elliott Beach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接