問題タブ [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.
.net - WCF サービスをトレースしない (診断トレース)
WCF サービス (コンソール アプリケーションでデバッグ モードでホスト) を呼び出すクライアント (単体テスト) があります。
サービスにエラーがありますが、どれかわかりません。トレースする必要がありますが、クライアントでファイル svclog を生成しません。
提案、サンプルコードは動作しますか?
編集: EntLibrary 4.1 のロギングを使用しています。トレース ログではなく、構成と WCF 診断トレースにエラーがあると思います。
クライアントの私の設定は次のとおりです。
c# - C# - 空白のパスワードを持つユーザーとして新しいプロセスを実行する
Windows 7 マシンで別のローカル ユーザーとして実行する必要があるメイン アプリケーションから生成した子プロセスがあります。そのユーザー アカウントにパスワードを設定したくないのですが、偽装を使用して新しいプロセスを作成すると、空白のパスワードや任意の種類の null 値が許可されないようです。これが可能かどうか知っている人はいますか?
以下は、空白の文字を渡す私の試みでした:
編集:受け取ったエラーメッセージ
Logon failure: user account restriction. Possible reasons are blank passwords not allowed, logon hour restrictions, or a policy restriction has been enforced
asp.net - ASP.NET へのログイン
WCF で使用される System.ServiceModel.MessageLogging のような asp.net へのロガーはありますか?
log4net - Log4nettraceappenderが何もログに記録しない
log4netによってログに記録されたすべてのものをSystem.DiagnosticsTraceクラスにリダイレクトしたいと思います。私が何をすべきかを理解しているのは、log4netをsystem.diagnostics.traceappenderにポイントしてから、system.diagnosticsを構成することです。これが私のweb.configの重要な部分です:
私は物事をつなぐ重要なステップを逃しましたか?log4netをバイパスして、新しいtracesourceを作成するだけで、ソースにログが記録されます。
wcf - log4net または NLog を使用した WCF ロギング/トレースおよびアクティビティ ID 伝播
ロギングに関する他の多くの質問を見てきました。ベストプラクティス。どのロギング プラットフォームが最適か。など。トピックに関する非常に良い議論があるSOのここからのリンクがいくつかあります。
編集を開始:
この長い投稿を入力して、私が理解しようとしている主なことは、WCF のログ記録/トレースとアクティビティ ID の伝達が System.Diagnostics と TraceSources にどれほど緊密に結合されているかということだと思います。log4net や NLog などのサード パーティのログ プラットフォームを使用して、「適切な」WCF ログ/トレースとアクティビティ ID の伝達を取得できますか。これを行う場合、どのようにしますか?
ServiceTraceViewer に関するいくつかの質問については、この投稿の下部を参照してください。
編集を終了します。
私の質問の主題は、これらの投稿のいずれにおいても詳細に議論されていません. ロギングと WCF に関して人々が何をしているかに興味があります。WCF サービスを含むプロジェクトに取り組んでおり、プロジェクトにログインしている場合、WCF 固有のログ機能を使用するために特別な努力をしていますか? 特に、アクティビティ トレース、アクティビティ伝播、エンド ツー エンド トレースなどを取り入れようとしていますか? MSDN のこの記事 で概説されているようなものです。これは、アクティビティの伝達に関するMSDNの別の記事です。
この記事では、System.Diagnostics の TraceSource を使用して、アクティビティのトレース、アクティビティの伝播、およびエンド ツー エンドのトレースを行う方法について説明しています。app.config/web.config ファイルを介してこれらのオプションを「オン」にするように WCF を構成する方法を示します。WCF は内部で TraceSources を使用して、通信の結果をログに記録します。
System.Diagnostics と TraceSources を介してアクティビティの伝播を実現する方法を多かれ少なかれ示すサンプル コード (上記でリンクされた 2 番目の MSDN 記事から) を次に示します。
WCF がアクティビティを伝達したかどうかを、サービス内から確認できる方法を次に示します。
私が見たすべての例から、アクティビティの伝播は System.Service モデルの TraceSource を構成し (通常は app.config を介して)、その propagActivity プロパティを "true" に設定することで達成されます。アクティビティは、Trace.CorrelationManager.ActivityId にアクティビティ ID (guid) を設定することによって実際に伝達されます。log4net または NLog を使用している場合、WCF のログ記録とアクティビティの伝達を効果的に使用できますか?
私のプロジェクトでは、WCF を非常に頻繁に使用します。現在、ロギング ソリューションに落ち着こうとしています。System.Diagnostics および TraceSources で WCF のログ記録とアクティビティの伝達がどのように機能するかについては、かなりよく理解できていると思います。log4net や NLog などのロギング プラットフォームを使用して、同様のことがどのように達成できるかをよりよく理解したいと思います。
彼らは「ネイティブ」サポートを提供していますか?アクティビティの伝播を「手動で」達成できるように、何らかのインフラストラクチャを提供する可能性が少し高いようです。多分このようなもの:
log4net/NLog ログ形式が NDC スタックの一番上をログに記録するように構成されている場合、(アクティビティがスコープ内にある間) クライアントによってログに記録された各メッセージは、アクティビティ ID で「タグ付け」されます。WCF サービスが同様に実装されていると仮定すると、サービス呼び出し中にログに記録されたすべてのメッセージも (おそらく別のファイルに) ログに記録され、同じアクティビティ ID でタグ付けされます。そのため、「サービス」ログ ファイル内のログ メッセージを「クライアント」ログ内の対応するメッセージに関連付けることができます。
したがって、WCF を使用していて、ログを記録している場合は、次の質問があります。
- アクティビティの伝播を使用していますか?
- ロギングに TraceSources を使用していますか?
- 他のログ プラットフォーム (log4net、NLog など) を使用していますか?
- 別のロギング プラットフォームを使用している場合、アクティビティの伝播はどのように行うのですか?
- サードパーティのログ (log4net/NLog - ほとんどのログ) と
System.Diagnostics.TraceSource
(WCF サービス境界のログ) を組み合わせて使用していますか?
ServiceTraceViewer はどうですか? 使いますか?私が見たほとんどの例は、TraceSources と XmlTraceListener を介して System.Diagnostics によって生成された出力を示しています。log4net、NLog などからの出力を使用できますか? TraceSource ベースのロギングで「最適」に機能しますか? もしそうなら、ServiceTraceViewer で表示するために、WCF サービス境界での TraceSource ベースのロギング (一部のアプリ コンテキストと WCF 通信情報をキャプチャする) を少しだけ持つだけで「十分」でしょうか? 進行中の WCF 学習プロセスの一環として、ServiceTraceViewer を簡単に使用しました。
ここまで読んでくれてありがとう。ログの統合、WCF アクティビティの伝播、および ServiceTraceViewer でログを表示する機能について考えすぎているのかもしれません。ロギング プラットフォームやロギング戦略の選択において重要な考慮事項のように思えますが、これらのロギング プラットフォームや WCF について確実に知るには十分な経験がありません。
c# - Process.Start dirquota.exe - 指定されたファイルが見つかりません
これで約2日間壁に頭をぶつけました。
System.Diagnostics.Process を使用して dirquota.exe を実行しています。.Start() で「指定されたファイルが見つかりません」という例外をキャッチします。
私は今やっています:
これにより、dirquota.exe を除く、そのディレクトリ内のほぼすべてのファイルが出力されます。誰?
乾杯。
c# - System.Diagnostic Process を使用する場合、プロセスの開始から出力のキャプチャの開始までの間に出力行が失われますか?
次のようなコードがある場合
proc を開始してからキャプチャ/解析が開始されるまでにいくつかの行を見逃す可能性がありますか? それとも待機しますか? そうでない場合、どうすればよいですか?
wcf - 診断を使用する場合の WCF および IIS エラー 500
診断を使用するときに、IIS 上の WCF に問題があります。
サービスを呼び出すと、次のエラーが発生します。
System.Net.WebException: リモート サーバーがエラーを返しました: (500) 内部サーバー エラー..
「system.diagnostics」セクションを削除すると、エラー 500 は発生しませんが、エラーが発生します
要求されたサービス ' http://localhost/CustomerServiceSite/Customer.svc ' を有効にできませんでした。詳細については、サーバーの診断トレース ログを参照してください。
明らかに、修正するには診断が必要です。
診断がうまくいかない理由はありますか?
c# - System.Diagnostics.Process.Start でプログラムを実行するとアプリケーション エラーが発生する
私の PC では、DWG ファイルは次のコマンドで開きます。
コマンドラインからこれを実行すると:
AutoCAD Lite で DWG ファイルを開きます。
同様に、コマンド プロンプトを開いて引数を指定して同じ exe を実行すると、正常に動作します。
しかし、私が使用する場合
その後
また
また
次のエラーが表示されます。
acadlt.exe - アプリケーション エラー
「0x01317c8c」の命令が「0x01317c8c」のメモリを参照していました。メモリを「読み取る」ことができませんでした。
[OK] をクリックしてプログラムを終了します [CANCEL] をクリックしてプログラムをデバッグします
OK キャンセル
ちなみに、デバッガーでコードをステップ実行すると、コードは正常に機能します。
Process.Start を使用してこの DWG を開く方法を知っている人はいますか?