【问题标题】:How can I debug a local IIS service with Visual Studio running as a non-Administrator user?如何使用作为非管理员用户运行的 Visual Studio 调试本地 IIS 服务?
【发布时间】:2010-07-16 18:59:12
【问题描述】:

我已安装 Visual Studio 2008 并以非管理员用户身份运行它。

我正在开发一个 Web 应用程序项目,并希望使用 Visual Studio 对其进行调试。我可以毫无问题地使用“Visual Studio Development Server”进行编译和调试。但是,当我在我的项目属性中选择“使用本地 IIS Web 服务器”并尝试保存项目时,Visual Studio 给我一个错误:“要访问本地 IIS 网站,您必须在管理员帐户的上下文中运行 Visual Studio 。”

现在,如果我相信微软的话,我必须通过实际使用管理帐户来运行 Visual Studio,但微软的最后通牒并不总是被证明是绝对的。

从其他类似的问题中,我已将我的用户添加到“调试器用户”组并授予用户 SeDebugPrivilege 权限。但是,我不能“以管理员身份运行”,因为我的用户实际上不是管理员。

【问题讨论】:

  • 我也不喜欢以管理员身份运行 Visual Studio。

标签: visual-studio debugging iis administrator non-admin


【解决方案1】:

目前看起来是这样,答案是你不能

如果有方法或解决方案出现,我将删除它。

【讨论】:

  • VS2012 现在主动提供在您尝试时以管理员身份重新启动的事实是对这种情况的官方确认......
【解决方案2】:

您可以使用不需要管理员权限的 IIS Express。不要认为有独立下载,但您可以在此处将其作为 Web Matrix 的一部分获取: http://www.microsoft.com/web/webmatrix/download/

【讨论】:

  • 很有趣,但我认为这是 Visual Studio 的问题,因为它根本不允许我选择调试本地 IIS 的选项。
【解决方案3】:

我从未尝试过,但可能值得一试。

以管理员身份登录时,您可以更改运行服务和/或应用程序池的身份。使它们在您通常使用的同一非管理员帐户下运行。然后当 Visual Studio 尝试附加到进程时,安全上下文将在调试器和正在调试的进程之间匹配。

我认为您只需要更改运行应用程序池的身份即可。

以下是来自 James Kovacs 的博客的更多详细信息:Debugging as a Non-Admin

【讨论】:

  • Visual Studio 实际上给了我一个错误对话框,说“要访问本地 IIS 网站,您必须在管理员帐户的上下文中运行 Visual Studio。”因此,“安全上下文”甚至无关紧要。无论我在哪个帐户下运行服务,Visual Studio 本身都会阻止我选择该帐户来调试 IIS。
  • 问题是,即使你改变了 IIS 池的身份(改变工作进程所有者),它仍然在会话 0 中运行,而不是在用户会话中。
【解决方案4】:

是否已经在 IIS 中为您的项目创建了网站?写入 IIS 元数据库确实需要管理员访问权限。如果您将网站设置为管理员,您可能能够以非管理员身份对其进行调试。 要尝试/测试的一件事是将 IIS 指向您网站的文件夹并使其运行,然后使用 Visual Studio 将进程附加到 w3wp 进程。

【讨论】:

  • 你可以通过运行visual studio并将调试器附加到进程来附加到w3wp吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多