【问题标题】:Running IIS Express with admin privileges以管理员权限运行 IIS Express
【发布时间】:2012-11-07 10:16:43
【问题描述】:

以前有人问过这个问题,但被关闭为“不是一个真正的问题”

https://stackoverflow.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 管理员权限?

【问题讨论】:

    标签: port iis-express administration hostname elevated-privileges


    【解决方案1】:

    对于 Visual Studio 2015 和 2012,此解决方案适用。

    1. 在 Visual Studio 中转到解决方案资源管理器,右键单击 Web 项目并选择“卸载项目”
    2. 下一步在同一个项目上,右键单击并选择“编辑项目文件”
    3. 查找
      <DevelopmentServerPort>0</DevelopmentServerPort><IISUrl>http://localhost:56058/</IISUrl>
      xml 标签并删除它们。
    4. 重新加载项目并运行。

    后续图片:

    【讨论】:

    • 同样适用于 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 文件并删除旧站点,但我不确定是否有必要

          【解决方案9】:

          我通过关闭我的 VPN 解决了(解决)这个错误。

          不确定为什么运行 vpn 会导致错误“无法启动网站,因为需要管理权限才能绑定到主机名或端口”。

          【讨论】:

            【解决方案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 并单击“以管理员身份运行”解决了这个问题。

                  【讨论】:

                    猜你喜欢
                    • 2012-01-01
                    • 2013-07-24
                    • 2014-05-18
                    • 1970-01-01
                    • 2015-11-22
                    • 1970-01-01
                    • 2017-07-03
                    • 2019-10-15
                    • 1970-01-01
                    相关资源
                    最近更新 更多