【问题标题】:How to debug multiple services in same solution as different users per service?如何在同一解决方案中调试多个服务作为每个服务的不同用户?
【发布时间】:2017-08-29 15:35:55
【问题描述】:

核心问题

给定一个包含多个项目(一个控制台应用程序和两个服务,以及一些共享库)的解决方案,如果每个服务都需要在它的自己的服务帐号?

理想

设置项目以允许 F5 调试器立即附加到服务和控制台,同时在自己的帐户下运行每个服务。

项目设置

我有一个包含多个开始条目的单一解决方案。我已经将它设置为在单击调试时启动每个入口点,但在实际测试时遇到问题,因为数据库需要对每个服务帐户使用 windows auth 来连接,但是这两个服务需要不同的服务帐户。

解决方案:

  • 公共库(所有 3 个项目共享)

  • 服务 1(WCF,需要作为EXAMPLEDOMAIN/ServiceAccount1_DEV 运行)

  • 服务 2(WebAPI,需要作为EXAMPLEDOMAIN/ServiceAccount2_DEV 运行)

  • 控制台应用程序(需要这两种服务,不管它在哪个帐户下运行)

  • 每个服务都在与不同的物理数据库通信,这是不可能的

目前尝试过/无法尝试的事情

在以前的 VS 版本中,我使用 VSCommands 的 DEBUG AS 来解决这个问题,但该项目对于 VS 2015 来说似乎已经死了。

尝试将 Visual Studio 本身作为各种服务帐户运行,但如果不以我自己的身份运行,则会遇到“试用期已过期”消息。

尝试使用适用于控制台的“C:\Windows\System32\cmd.exe /C runas /savecred /user:ServiceAccount#_DEV DebugTarget.Exe”,但我还没有弄清楚如何启动服务有了这个。

我无法使用其他版本的 VS,因为我处于锁定的公司环境中并且只安装了 VS 2015。

我可以在经理批准的情况下使用插件,但没有预算,所以像 VSCommands 这样的插件对我来说是可以接受的答案,但前提是它是免费的。

我无法更改 SQL 权限,因为每个服务都在与不共享权限的单独物理数据库通信。

编辑:缺少理想的结果块。

【问题讨论】:

  • 看来真正的问题不是调试问题,这与如何在命令行中启动/启动服务有关。像这里的这种情况:stackoverflow.com/questions/133883/…,一个想法是您是否可以通过 bat 文件启动或停止服务,或者使用 PsExec 等其他工具或其他工具。希望它可以为您提供一条路径。
  • @JackZhai-MSFT,感谢您的回复,但我指的是在解决方案中调试服务项目,而不是在机器上安装服务,因此 SC 和 PsExec 都没有实际安装的服务来执行.
  • 请尝试在这里访问这个建议:stackoverflow.com/questions/5331206/…,另一个想法是只需打开项目属性将 IIS Express 更改为本地 IIS,然后在 IIS 中使用两个帐户运行两个项目。
  • @JackZhai-MSFT,本地 IIS,虽然并不理想,但至少让我解决了这个问题。如果您将其发布为答案,我会接受。非常感谢。
  • 我把它作为答案发布,你能把它标记为答案吗?因此,它可以帮助遇到同样问题的其他社区成员。

标签: c# visual-studio-2015 permissions visual-studio-debugging multiple-projects


【解决方案1】:

解决方案:

一个想法是,只要打开项目属性,将IIS Express更改为本地IIS,然后在IIS中使用两个帐户运行两个项目。

另一个帖子也在这里讨论了同样的问题:

how to run iisexpress app pool under a different identity

【讨论】:

  • 评论以防其他人提出相同的问题:已接受答案,因为这提供了有效的解决方法。虽然这不是我所追求的,但似乎 VS 无法满足我开箱即用的理想解决方案,并且由于 VSCommand 不再被维护,因此没有免费插件满足要求。这比我希望的要乏味一些,但确实有效。
猜你喜欢
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
相关资源
最近更新 更多