【发布时间】: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