如何在不同的身份下运行iisexpress应用程序池

时间:2011-03-16 20:14:13

标签: visual-studio-2010 iis-express

有没有办法以不同于当前登录用户的身份运行iisexpress应用程序池?

我现在使用“runas”命令解决这个问题,但我想知道iisexpress是否内置了我可以使用的内容。

5 个答案:

答案 0 :(得分:28)

看起来这应该是可能的。在IIS Express站点的applicationhost.config文件中,<processModel/>下的<applicationPoolDefaults>中定义了<applicationPools>元素

<processModel>元素包含userNamepassword的属性。

来自MSDN

  

指定ASP.NET将使用与默认进程标识的Windows标识不同的Windows标识运行辅助进程。默认情况下,此属性设置为计算机,并且该进程在名为ASPNET的用户帐户下运行,该帐户在安装ASP.NET时自动创建。 ASPNET帐户的密码在安装时以加密方式生成。如果此属性和密码属性中显示有效凭据,则使用给定帐户运行该过程。

这应该允许您使用登录用户的不同凭据运行网站。

答案 1 :(得分:7)

我无法使上述解决方案起作用,我希望能够在不同凭据下运行IIS Express时通过Visual Studio进行调试。

  1. 使用“以管理员身份运行”(您需要提升权限)打开命令提示符
  2. 在命令提示符下导航到Visual Studio目录(在我的例子中:VS2010的“cd C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE”)。
  3. runas / netonly / user:[domain] \ [userid] devenv.exe
  4. 从VS打开您的解决方案并填写您的TFS凭据(如果适用)。
  5. 现在,您可以在IISExpress下正常调试(假设这是您配置项目的方式)作为凭据运行。如果您需要使用集成安全性进行数据库连接或类似但需要使用不同的凭据,这非常有用。

答案 2 :(得分:5)

“runas”只是解决方案。 IIS Express可能不遵守applicationhost.config文件中定义的processModel设置。

答案 3 :(得分:1)

Runas / netonly命令行中的IISExpress.exe确实有效,如果你像我们一样渴望得到答案,那么它是非常可行的。 Related post

答案 4 :(得分:0)

我想知道这是否真的有用 - IIS Express似乎在同一个进程中运行所有应用程序池 - 并且该进程是在当前用户的上下文中执行的......?

似乎“运行方式”选项可以正常工作,但这需要我们从命令行(或构建事件)启动IIS Express,而不是依赖Visual Studio启动它。 :(