【问题标题】:Debugger.Launch()调试器.Launch()
【发布时间】:2012-11-28 07:10:36
【问题描述】:

因此,我们处于一个 Windows Server 2008 环境中,多个开发人员在该环境中终端,处理同一代码的不同部分。 (我知道,它很丑,没有修订控制。)问题是,而且无论如何,如果有人使用 Debugger.Launch() 调试 Web 服务,用户会向哪个用户发送消息询问用户是否要调试发送?我问,因为我作为一个尝试调试代码的用户登录,但另一个用户正在收到消息。我想知道如何让它向我发送消息。

【问题讨论】:

  • 当Debugger.Launch() 行被击中时,他是执行代码的那个人吗?我不确定是否有解决方法...您可以在执行该行代码之前检查用户名:stackoverflow.com/questions/3175004/…
  • 我实际上是从 SOAP 客户端执行代码,所以它是……实际上,我认为她是以运行服务的 webapp 的应用程序池身份登录的。也许就是这样。
  • 好的,所以在这种情况下,如果有一个终端会话为它打开,那么无论运行代码的帐户是否都会收到消息。如果没有,调试器会寻找任何其他活动会话来发送消息。如果没有找到,它会继续处理。
  • 我认为您可以将其发布为您问题的答案。这样人们就可以投票等等。
  • 我会尽快,因为你确实让我走上了正确的道路。

标签: .net debugging system.diagnostics


【解决方案1】:

Debugger.Launch() 语句将为运行它的任何帐户启动调试器对话框,假设有一个终端会话为其打开。如果没有,它会寻找可以向其发送消息的任何其他活动会话。如果失败,它将继续运行。

因此,如果您在项目的服务器端代码中有 Debugger.Launch() 语句并且没有在本地运行它(通过 IIS 或其他方式),它可能不会按照您希望的方式运行;)

(问题cmets中的内容总结)

【讨论】:

  • Debugger.Launch 如果在 Windows 服务(即在 IIS、WAS 等下运行的 Web 服务)的上下文中调用,则不会有一个桌面来向用户显示表单和对话框。 .
  • 嗯,那为什么其他用户会看到“选择您的调试器”对话框?
  • 他们是否使用“与桌面交互”运行服务?如果您有多个用户登录,它会看起来像是随机选择桌面,因为有多个。这将导致无法确定地在特定桌面上“选择调试器”。
  • 我不知道,我只是好奇什么可以解释问题中描述的行为。
  • 我刚刚在我的机器上尝试了这个,将 Windows 服务“登录为”设置为“本地服务”。 Debugger.Launch() 提示我选择调试器。不过,我还没有使用 Web 服务对其进行测试。
猜你喜欢
  • 2018-03-17
  • 1970-01-01
  • 2018-11-03
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多