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

the*_*ing 30 visual-studio-2010 iis-express

有没有办法在除当前登录用户之外的其他身份下运行iisexpress应用程序池?

我现在使用"runas"命令来解决这个问题,但我想知道iisexpress是否内置了一些我可以使用的内容.

Ada*_*ice 29

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

<processModel>元素具有userName和的属性password.

来自MSDN:

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

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

  • 获取applicationhost.config文件路径的一种方法是单击"IIS Express系统托盘"图标中的"显示所有应用程序".然后单击相关应用程序.将有一个指向完整配置文件路径的链接. (11认同)

Gla*_*lor 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凭证(如果适用).

您现在可以在IISExpress下正常调试(假设这是您配置项目的方式)作为凭据运行.如果您需要使用集成安全性进行数据库连接或类似但需要使用不同的凭据,这非常有用.

  • 嗨@PhilNicholas - 这就是 `/netonly` 发挥作用的地方:“当您使用 RunAs /netonly 启动程序时,该程序将以您当前登录的用户身份在本地计算机上执行,但与其他计算机的任何连接将使用指定的用户帐户在网络上进行“ (2认同)

vik*_*all 5

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