問題タブ [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 Framework 3.5 を対象としたプログラムに System.Diagnostics.Process オブジェクトがあります。

StandardOutputパイプとパイプの両方をリダイレクトStandardErrorし、それらから非同期でデータを受信して​​います。また、Exited イベントのイベント ハンドラーも設定しました。

電話をかけたらProcess.Start()、イベントが発生するのを待っている間、外に出て他の仕事をしたいと思います。

残念ながら、大量の情報を返すプロセスの場合、Exited イベントは最後のOutputDataReceivedイベントの前に発生するようです。

OutputDataReceived最後がいつ受信されたかを知るにはどうすればよいですか? Exited理想的には、このイベントを受信する最後のイベントにしたいと考えています。

以下にプログラム例を示します。

このプログラムを実行すると、「Exited (Event)」が出力内のまったく異なる場所に表示されることに気付くでしょう。数回実行する必要があるかもしれませんし、明らかに、「output.exe」を適切な大量の出力を生成する任意のプログラムに置き換える必要があります。

もう一度質問します。最後のメッセージがいつOutputDataReceived受信されたかを知るにはどうすればよいですか? Exited理想的には、このイベントを受信する最後のイベントにしたいと考えています。

0 投票する
19 に答える
297284 参照

c# - 現在のメソッドを呼び出したメソッドを見つけるにはどうすればよいですか?

C# にログインするとき、現在のメソッドを呼び出したメソッドの名前を知るにはどうすればよいですか? についてはすべて知ってSystem.Reflection.MethodBase.GetCurrentMethod()いますが、スタック トレースでこの 1 つ下のステップに進みたいと思います。スタック トレースの解析を検討しましたが、メソッド以外のような、より明確で明確な方法を見つけたいと考えていAssembly.GetCallingAssembly()ます。

0 投票する
3 に答える
556 参照

c# - 引数の開始位置がわからないプログラムをどのように実行しますか?

1行で質問するのは簡単ではないので、主題は多くを語らない. レジストリから読み取ったいくつかのプログラムを実行する必要があります。誰かがパスと引数全体を保存するフィールドから読み取る必要があります。
プログラムの名前とその引数を設定するSystem.Diagnostics.ProcessStartInfoを使用してきましたが、プロセス実行可能ファイルを1つのフィールドに保存し、その引数を別のフィールドに保存するために解析する必要があるさまざまな引数を見つけました。

文字列全体をそのまま実行する方法はありますか?

0 投票する
2 に答える
538 参照

.net - System.Diagnostics: ID を使用してログに記録する方法

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 アプリケーションでトレースを使用したいと考えました。特に、強力な方法でトレースを調べることができるService Trace Viewerツールを使用できる可能性があることを知って以来.

私はこれまでこの痕跡を使ったことがなかったので、勉強を始めました。Google、SO、および MSDN をしばらく使用した後、ようやく物事がどのように機能するかについての良いアイデアが得られました。しかし、私はまた、非常に気がかりなことを1つ見つけました。

ASP.NET アプリケーションでトレースを使用する場合、Web 要求によってトレース メッセージをグループ化することは非常に理にかなっています。特に私がそれを使いたい理由の 1 つは、パフォーマンスの問題を研究するためです。上記のツール<Corrleation>は、生成された XML ファイルでタグを使用することにより、これもサポートします。これは から来ていSystem.Diagnostics.Trace.CorrelationManagerます。また、アクティビティの開始/停止などの他の優れた機能も使用できます。これにより、トレース メッセージをより適切にグループ化できます。かっこいいでしょ?

私もそう思っていましたが、CorrelationManager実際に住んでいた場所を調べ始めるまでは。結局のところ、それは静的プロパティでした。Reflector をいじってみたところ、恐ろしいことがわかりましたCallContextASP.NET で使用してはいけないものはどれですか?

それで...ここで何か足りないのですか?ASP.NET のトレースには本当に根本的な欠陥がありますか?

追加:うーん、私はこの内容を自分で書き直そうとしているところです。痕跡を探索するためにきちんとしたツールを使いたいと思っています。これをしてはいけない理由はありますか?おそらく、まだ何か良いものがありますか?すぐに答えが得られたら本当にいいですね。:)

追加 2:私の同僚は、これが単なる理論上の問題ではないことを確認しました。彼は、彼が取り組んでいるシステムでこれを観察しました。それで解決です。私は自分のやりたいように物事を行う新しい小さなシステムを構築するつもりです。:)

追加 3:うわー、すごい... Microsoft の担当者は、ASP.NET で Correlation Manager を使用することに何の問題も見つけられませんでした。結局、どうやらこのバグの修正は得られていないようです...

0 投票する
5 に答える
47939 参照

.net - MS Windows OS のバージョン番号を .NET の製品名に変換する方法は?

MS Windows OS のバージョン番号を製品名に変換する方法は?

たとえば、.NET では、次の 2 つのプロパティを使用して、製品が MS Windows Vista Ultimate Edition であることを確認できます。

Environment.OSVersion.Platform returns Win32NT

Environment.OSVersion.Version returns 6.0.6001.65536

0 投票する
1 に答える
14527 参照

c# - クレデンシャルを使用した.NETプロセス開始プロセスエラー(ハンドルが無効です)

StartInfoにユーザー名、ドメイン、およびパスワードを提供するWindowsフォームアプリケーションがあり、これをスローします。

System.ComponentModel.Win32Exception: System.Diagnostics.Process.Start()のSystem.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)でハンドルが無効です

クレデンシャルを現在のユーザーにデフォルト設定することを許可すると、そのようなエラーは発生せず、開始するプロセスは、クレデンシャルを使用する必要がない範囲で機能します(クレデンシャルはMSBuildスクリプトでドライブをマッピングするために必要です)。開始情報を入力するコードは次のとおりです。

たとえば、悪いpswを提供​​すると、それをキャッチするため、user/pswが一致していないわけではありません。したがって、この「無効なハンドル」は、credが渡された後に発生します。何を省略したり、台無しにしたりする可能性があるかについてのアイデアはありますか?

0 投票する
6 に答える
36990 参照

c# - C#を使用してプロセスがリモートシステムで実行されているかどうかを確認します

プロセスがリモートシステムで実行されているかどうかを確認しようとしています。私は次のコードを使用しています:

ただし、コードを実行しようとすると、「リモートマシンに接続できませんでした」というエラーが表示されます。

次のコマンドでpslistを実行できます。C:> pslist \ remoteSystemNameしたがって、必要な情報を取得できることはわかっていますが、コードで必要です。

もう1つの可能性は、pslistをC#に統合し、リストを検索してプロセスが存在するかどうかを確認することですが、これを行う方法に関する情報は見つかりませんでした。