问题标签 [system.diagnostics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
878 浏览

c# - 我的进程是如何退出的?

从 Windows 机器上的 C# 中,有没有办法找出进程是如何停止的?我已经查看了Process类,一旦我设置,就设法从 Exited 事件中获得一个很好的友好回调,EnableRaisingEvents = true;但我还没有设法找出进程是否被杀死或它是否自然退出?

0 投票
2 回答
9229 浏览

c# - 我怎么知道最后一个 OutputDataReceived 何时到达?

我在针对 .Net 框架 3.5 的程序中有一个 System.Diagnostics.Process 对象

我已经重定向了StandardOutputStandardError管道,并且我正在异步接收来自它们的数据。我还为 Exited 事件设置了一个事件处理程序。

一旦我打电话Process.Start(),我就想在等待事件发生时离开并做其他工作。

不幸的是,对于返回大量信息的进程,Exited 事件似乎在最后一个OutputDataReceived事件之前被触发。

我怎么知道最后一次OutputDataReceived收到是什么时候?理想情况下,我希望该Exited事件是我收到的最后一个事件。

这是一个示例程序:

运行此程序时,您会注意到“Exited (Event)”出现在输出中一个完全可变的位置。您可能需要运行它几次,显然,您需要将“output.exe”替换为您选择的能够产生适当大量输出的程序。

所以,问题又来了:我怎么知道最后一个OutputDataReceived收到的时间?理想情况下,我希望该Exited事件是我收到的最后一个事件。

0 投票
19 回答
297284 浏览

c# - 如何找到调用当前方法的方法?

登录 C# 时,如何知道调用当前方法的方法的名称?我知道一切System.Reflection.MethodBase.GetCurrentMethod(),但我想在堆栈跟踪中更进一步。我考虑过解析堆栈跟踪,但我希望找到一种更清晰更明确的方式,比如Assembly.GetCallingAssembly()but for 方法。

0 投票
3 回答
556 浏览

c# - 你如何运行一个你不知道参数从哪里开始的程序?

题主不多说,一句话就不好问了。我必须执行一些从注册表中读取的程序。我必须从有人保存整个路径和参数的字段中读取。
我一直在使用 System.Diagnostics.ProcessStartInfo 设置程序的名称及其参数,但我发现了各种各样的参数,我必须解析这些参数才能将进程可执行文件保存在一个字段中,并将其参数保存在另一个字段中。

有没有办法按原样执行整个字符串?

0 投票
2 回答
538 浏览

.net - System.Diagnostics:如何使用身份登录

我已经实现了基于 System.Diagnostics 的跟踪。

我还在使用 System.Diagnostics.TextWriterTraceListener,并将整个跟踪连接到 MOSS 2007 Web 应用程序。

由于某种原因,跟踪尝试 (a) 创建日志文件,和/或 (b) 使用当前正在浏览 SharePoint 站点的用户写入日志文件,有没有办法配置日志记录以使用特定的用户帐户而不是?

0 投票
2 回答
3015 浏览

c# - User32 的 ShowWindow 未按预期运行

我正在使用 User32 的 ShowWindow 方法向用户隐藏一个窗口(cmd.exe)(主要是为了防止他们关闭它)。当用户打开表单时,进程启动并隐藏,然后当表单关闭时,进程被终止。但是,当再次打开表单时,它不会隐藏窗口(有时不是第一次)有人可以帮我解决这个问题吗?

0 投票
2 回答
2047 浏览

asp.net - ASP.NET 和 System.Diagnostics 跟踪 - 我错过了什么,还是这是个坏主意?

出于各种常见原因,我想对我的 ASP.NET 应用程序使用跟踪。特别是因为我发现了使用服务跟踪查看器工具的可能性,它允许您以一种强大的方式检查您的跟踪。

由于我之前从未使用过这个trace的东西,所以我开始研究它。经过一段时间的 Google、SO 和 MSDN,我终于对事情的运作方式有了一个很好的了解。但我也发现了一件非常令人不安的事情。

在 ASP.NET 应用程序中使用跟踪时,通过 Web 请求将跟踪消息组合在一起非常有意义。特别是因为我想使用它的原因之一是研究性能问题。上述工具还通过<Corrleation>在生成的 XML 文件中使用标签来支持这一点。又是从哪来的System.Diagnostics.Trace.CorrelationManager。它还允许其他不错的功能,例如 Activity 启动/停止,它提供了更好的跟踪消息分组。很酷,对吧?

我也是这样,直到我开始检查CorrelationManager实际居住的地方。毕竟 - 这是一个静态属性。在玩了一些 Reflector 之后,我发现了一些可怕的东西 - 它存储在CallContext我们不应该在 ASP.NET 中使用哪种东西,对吗?

所以......我在这里错过了什么吗?ASP.NET 中的跟踪真的存在根本缺陷吗?

补充: Emm,我有点自己重写这些东西的边缘。我仍然想使用整洁的工具来探索痕迹。有什么理由我不应该这样做?也许还有更好的东西?如果我能尽快得到一些答案,那就太好了。:)

补充2:我的一位同事证实这不仅仅是一个理论问题。他在他正在研究的系统中观察到了这一点。这样就解决了。我将建立一个新的小系统,按照我想要的方式做事。:)

补充 3:哇,太棒了……微软的人找不到在 ASP.NET 中使用 Correlation Manager 有什么问题。所以显然我们毕竟没有修复这个错误......

0 投票
5 回答
47939 浏览

.net - 如何将 MS Windows 操作系统版本号转换为 .NET 中的产品名称?

如何将 MS Windows 操作系统版本号翻译成产品名称?

例如,在 .NET 中,可以使用以下两个属性来确定产品是 MS Windows Vista Ultimate Edition:

Environment.OSVersion.Platform returns Win32NT

Environment.OSVersion.Version returns 6.0.6001.65536

0 投票
1 回答
14527 浏览

c# - .NET Process Start Process Error using credentials(句柄无效)

我有一个 Windows 窗体应用程序,它向 StartInfo 提供用户名、域和密码,它会抛出这个:

System.ComponentModel.Win32Exception:句柄 在 System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 在 System.Diagnostics.Process.Start() 处无效

当我允许将凭据默认为当前用户时,我不会收到此类错误,并且我启动的过程可以在不需要使用凭据的范围内工作(凭据对于在 MSBuild 脚本中映射驱动器是必需的)。这是填写开始信息的代码:

并不是用户/psw 不匹配,因为例如,当我提供错误的 psw 时,它会捕获它。所以,这个“无效句柄”的事情是在信用通过之后发生的。关于我可能会忽略或搞砸的任何想法?

0 投票
6 回答
36990 浏览

c# - 使用 C# 检查进程是否在远程系统上运行

我正在尝试检查一个进程是否正在远程系统上运行。我正在使用以下代码:

但是,当我尝试运行代码时,出现以下错误:“无法连接到远程机器。”

我可以使用以下命令运行 pslist: C:>pslist \remoteSystemName 所以我知道可以获得我需要的信息,但我需要在代码中使用它。

另一种可能性是将 pslist 集成到 C# 中并搜索列表以查看该进程是否存在,但我还没有找到有关如何执行此操作的信息。