如何以非管理员用户身份运行Visual Studio并调试本地IIS服务?

14

我已经安装了Visual Studio 2008,以非管理员用户身份运行。

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

现在,如果按照微软的说法,我必须实际上使用管理帐户来运行Visual Studio,但是微软的命令并不总是绝对正确的。

根据其他类似问题的建议,我把我的用户添加到了"Debugger Users"组,并赋予该用户SeDebugPrivilege特权。但由于我的用户实际上不是管理员,所以我无法"以管理员身份运行"。


我也不喜欢以管理员身份运行Visual Studio。 - Colonel Panic
4个回答

13

目前看来,答案似乎是你不能

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


1
目前,VS2012主动提供以管理员身份重新启动的选项,这是官方确认其仍然存在的事实... - Ruben Bartelink

2

有趣的是,我认为这是一个Visual Studio问题,因为它根本不让我选择调试本地IIS选项。 - palswim

1

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

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

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

以下是James Kovacs的Weblog中的更多详细信息:作为非管理员进行调试


Visual Studio 实际上会弹出一个错误对话框,提示“要访问本地 IIS 网站,必须在管理员帐户的上下文中运行 Visual Studio。” 因此,“安全上下文”甚至都不重要;无论我在哪个帐户下运行服务,Visual Studio 本身都会阻止我选择调试 IIS 的帐户。 - palswim
问题在于,即使更改IIS池的身份(更改工作进程所有者),它仍然在会话0中运行,而不是用户会话中。 - DirectionUnkown

0

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


你能否通过运行Visual Studio并将调试器附加到进程来连接w3wp? - Mike

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