以管理员权限运行 IIS Express
Posted
技术标签:
【中文标题】以管理员权限运行 IIS Express【英文标题】:Running IIS Express with admin privileges 【发布时间】:2012-11-07 10:16:43 【问题描述】:以前有人问过这个问题,但被关闭为“不是一个真正的问题”
https://***.com/questions/7450813/how-to-run-a-site-with-administrative-privileges-in-iis-express-7-5
但是我认为这是一个真正的问题,因为我也需要这样做,有 MS 文档解释了如何“Run IIS Express without Administrative Privileges”,但由于这是它默认运行的方式,坦率地说,对这篇文章的需求让我感到困惑。但是我不知道如何以管理员权限运行它。
当我尝试启动我的 VS2012 网站时,我从 IIS express 收到以下错误消息: “无法启动网站,因为需要管理权限才能绑定到主机名或端口”,并提供了有关在没有管理员权限的情况下运行它的 MS 文档的链接。
我最终要做的是在本地以 http://vs2012:nnnnn 运行我的开发站点,这样我就可以附加 fiddler 调试器(由于在使用 localhost 时绕过了 IE 中的代理)
这曾经工作得很好,今天早上我重新安装了窗户,现在撞到了一堵砖墙!
有谁知道如何按照错误消息中的指示授予 IIS express 管理员权限?
【问题讨论】:
【参考方案1】:对于 Visual Studio 2015 和 2012,此解决方案适用。
-
在 Visual Studio 中转到解决方案资源管理器,右键单击 Web 项目并选择“卸载项目”
下一步在同一个项目上,右键单击并选择“编辑项目文件”
查找
<DevelopmentServerPort>0</DevelopmentServerPort><IISUrl>http://localhost:56058/</IISUrl>
xml 标签并删除它们。
重新加载项目并运行。
后续图片:
【讨论】:
同样适用于 VS2017 哇。非常感谢。简单的解决方案。 同样适用于 VS2019 对我来说也适用于 VS2022。【参考方案2】:我已经解决了。
我将 Visual Studio 切换为使用管理权限运行,还找到了 IIS Express 的 .exe 并将其设置为始终使用管理权限运行。我不是 100% 确定需要第二个,但无论如何都做了。
我希望这可以帮助遇到同样问题的其他人。
编辑
(2013 年 8 月 19 日)
这似乎只适用于 Windows 7, 在 Windows 8 上,我最终放弃了,现在将全面的 IIS 用于我的所有开发工作。
编辑
(07/06/2018)
@Tarostar(下面的评论),让它在 Windows 10 VS2017 上运行,而其他一些人在使用相同的方法之前已经让它在 Windows 8 上运行。很可能我在我的 Windows 8 机器上做错了什么。
【讨论】:
澄清一下,我只需要确保 VS 以管理员身份运行并且可以正常工作。 也许这可以节省一些时间,我的 IIS Express 位于这里:C:\Program Files (x86)\IIS Express\IISExpress.exe
。
确认这适用于 Windows 8 for Visual Studio 2013 - 我以管理员身份运行 VS,IIS Express 也自动提升。
这在 Windows 8.1 上对我有用,但我需要一个允许从我的 LAN 连接的防火墙规则。只有这样我才能连接到服务器。
以管理员身份运行 Visual Studio(右键单击菜单)解决了根据 2018 年 6 月使用 Win10 和 VS2017 进行编辑之前描述的问题,所有补丁均已更新。当我需要将 localhost 映射到主机文件中的域名以调试 cookie 问题时,我得到“iis express 无法启动网站,因为需要管理权限才能绑定到主机名或端口”。由于这是一个 .net core 2.0 项目,我在 launchSettings.json 的 applicationUrl 中指定了主机名。感谢 Morvael 解决了这个问题(但您可能应该删除编辑)。【参考方案3】:
在我的情况下,该站点在没有管理员权限的情况下工作,并且在某些时候停止并仅与管理员一起工作。
端口号高于 1024,不需要管理员权限,但 Visual Studio 2015 拒绝在没有管理员权限的情况下运行站点。
我想通了,是因为它被添加到了
netsh http show urlacl
向我展示了
Reserved URL : http://*:15888/
User: \Everyone
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;WD)
因此,就我而言,我已将其从该列表中删除,并且它再次起作用。以下是删除命令:
netsh http delete urlacl http://*:15888/
【讨论】:
【参考方案4】:虽然有点晚了,并且没有回答“如何以管理权限运行”的问题,但这可能是解决所述问题/错误的方法:
无法启动网站,因为需要管理权限才能绑定到主机名或端口
如running-iis-express-from-the-command-line 中所述,使用的端口号可能需要以下管理权限:
如果您想在编号为 1024 或更少的端口上运行 IIS Express,您必须拥有管理员用户权限。
因此,如果您可以在高于 1024 的端口号上运行,您可能根本不需要管理权限。
【讨论】:
不幸的是,如果您不想将您的网站绑定到本地主机,则无论选择什么端口号,您始终需要管理员用户权限。 @Aurril:感谢您提供的信息。这是否适用于所有“外部”绑定,即使您使用本地地址,如本地 IP 范围?您有参考/链接,我可以添加到答案中吗? 据我记得,127/8 块之外的所有地址都需要管理员权限。请参阅iis.net/learn/extensions/using-iis-express/… 部分“在本地运行站点”。【参考方案5】:这不是授予 ISS 管理员权限的方法,而是解决帖子中的错误的方法。 一天早上我开始看到这个错误,并通过关闭我电脑的移动热点解决了这个问题。显然,与其他设备共享您的互联网可能会导致“无法启动网站,因为需要管理权限才能绑定到主机名或端口”错误。
【讨论】:
为我工作。非常感谢【参考方案6】:1) 找到 CSPROJ 文件。在您的项目文件中 2)CSPROJ文件在记事本中打开(拖动到记事本) 3)搜索两行(按Ctrl+F并输入第一个单词,例如:)
<DevelopmentServerPort>0</DevelopmentServerPort>
<IISUrl>http://localhost:57680/</IISUrl>
4)删除两行。 5) 保存 CSPROJ 文件。
【讨论】:
【参考方案7】:我知道这可能为时已晚,但其他解决方法都没有为我工作。所以这就是我所做的。我正在使用 Web API 2 并且 IIS Express 不时启动,并且在我将项目加载到新解决方案中之后它会起作用。但是,我找到了更好的解决方案。在 csproj 文件中删除 WebProjectProperties 下的这两个节点,您将全部设置好。
DevelopmentServerVPath IISUrl【讨论】:
【参考方案8】:这对我有用!
在VS中你可以右键项目,选择Unload Project,然后再次右键选择Edit ProjectName.csproj。
删除 DevelopmentServerPort 和 IISUrl 标记。
之后,您可以右键单击项目并选择重新加载项目重新开始工作。删除 DevelopmentServerPort 和 IISUrl 标签会导致 VS 重新生成端口号,之后项目运行良好。
我做的另一件事是打开我的 Documents\IISExpress\Config\applicationHost.config 文件并删除旧站点,但我不确定是否有必要
【讨论】:
学分:geekswithblogs.net/WinAZ/archive/2014/09/11/…【参考方案9】:我通过关闭我的 *** 解决了(解决)这个错误。
不确定为什么运行 *** 会导致错误“无法启动网站,因为需要管理权限才能绑定到主机名或端口”。
【讨论】:
【参考方案10】:Morvael 建议的方法的一个小补充 - 即使您在为 Visual Studio 和 IISExpress 分配管理员权限后遇到错误,请尝试在此之后重新启动系统。为我工作。
【讨论】:
【参考方案11】:您可以在以下位置更改文件:
%userprofile%\Documents\IISExpress\config\applicationhost.config
转到文件的这一部分:
<system.applicationHost>
<applicationPools>
<applicationPoolDefaults managedRuntimeLoader="v4.0" >
并为您的应用程序池添加一个标签,指定它应该在其下运行的用户名和密码:
<processModel userName="Uname" password="Pword" />
【讨论】:
【参考方案12】:从 2018 年开始...我在 VS 2017 上遇到了这个问题并收到了相同的错误消息。为了解决这个问题,我将项目配置中的项目 URL 从 http://localhost:10243 更改为 http://localhost:10244。一旦我确认我想创建虚拟目录,我就可以在浏览器中启动我的项目。我没有在管理员模式下运行 VS。希望这会有所帮助!
【讨论】:
【参考方案13】:我最终通过右键单击 Visual Studio 并单击“以管理员身份运行”解决了这个问题。
【讨论】:
以上是关于以管理员权限运行 IIS Express的主要内容,如果未能解决你的问题,请参考以下文章
如何找到对 SQL Server Express 具有系统管理员访问权限的 Windows 用户和组?
授予 IIS Express 访问 VMWare 中的网络驱动器的权限