以管理员权限运行 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。

删除 DevelopmentServerPortIISUrl 标记。

之后,您可以右键单击项目并选择重新加载项目重新开始工作。删除 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 中的网络驱动器的权限

.bat文件,我运行之后,请以管理员权限启动,怎么修改设置?

win7 bat文件默认管理员权限运行,这怎么做到?

vs.net2003 安装时权限不够??

检测程序是不是以完全管理员权限运行