問題タブ [win32exception]

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 投票する
0 に答える
343 参照

c++ - ShellExecuteEx を使用して Office ドキュメントを開くと、ERROR_DDE_FAIL が発生する

Office ファイルを開くときに、ShellExecuteEx からエラーが返されました。これは、同じ OS/Office バージョンなどを使用している場合でも、一部の PC でのみ発生します。

私が取得しているエラーは ERROR_DDE_FAIL で、オフィスから次のテキストを含むメッセージが表示されます。「コマンドをアプリケーションに送信中にエラーが発生しました。」

これは私が使用しているコードです:

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

c# - プロセス情報を取得するときのSystem.ArgumentExceptionおよびSystem.ComponentModel.Win32Exception

プロセスの情報をコンソールに書き込もうとすると、System.ArgumentExceptionとSystem.ComponentModel.Win32Exceptionが発生します。これの原因は何ですか?どうすればそれらをやめることができますか?

「stringcompanyName=processListe[i].MainModule.FileVersionInfo.CompanyName;」でエラーが発生します ライン。

エラーメッセージ:

最後に、エラーが発生するプロセスの情報出力を作成しました。

0 投票する
0 に答える
1141 参照

c# - Win32Exception をキャッチできませんか?

私はWpfアプリケーションを持っています。その中で新しいプロセスを開始します。このプロセスはコンソール アプリケーションです。Wpf アプリケーションを起動すると、「指定されたファイルが見つかりません」という Win32Exception がスローされます。問題は、誰が例外をスローしたかを追跡するためのコール スタックがないことです。try/catch ブロックを使用して、コード内の多くの場所で例外をキャッチしようとしています。問題は、例外 System.ComponentModel.Win32Exception をキャッチできないことです。C#言語を使ってWpfアプリケーションのロジックを開発しています。私の悪い英語でごめんなさい!

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

c# - トレースと「デバイスの準備ができていません」

XML ファイルのテレメトリ ログ行のバッチを受け入れ、それらを SQL Server のテーブルに転記する非常に単純なアプリケーションを作成しました。着信データのこれらのブロックのそれぞれを「チャプター」と呼びます。

パフォーマンス上の理由から、100 の暗黙的なトランザクションの代わりに、100 の新しい行に対して 1 つのトランザクションが存在するように、各チャプタはトランザクションにラップされます。

残念ながら、重複があり、トランザクションのコンテキストが共有されているため、章全体が省略されています。これは珍しいことですが、無視できるほどまれではありません。そこで、ループ、再試行フラグ、およびスキップ リストを保持するキャッチ (SqlException) を追加しました。行が挿入時にバーフすると、トランザクションをロールバックし、新しいトランザクションを作成し、行番号をスキップ リストに追加し、再試行フラグを設定して、ループさせます。スキップ リストに含まれる行を除いて、すべての行が再処理されます。2 番目の行が barfs の場合、スキップ リストに 2 つの項目があることを除いて、同じことが起こります。

この配置全体が機能します。私にカレーを与えているのはエンドゲームです。章が例外なくエンドツーエンドで処理されると、ループが終了し、スキップ リストが空かどうかを確認します。空でない場合は、Trace.TraceWarning() を使用して、後でフォレンジックに使用するために、失敗した行と XML のブロックの詳細を示すイベント ログ エントリを書き込もうとします。

物事が南に行くのはこの時点です。この Trace ステートメントは、「デバイスの準備ができていません」と主張する Win32 例外でバーフします。

誰もこのようなものを見たことがありますか?

一晩で、時々問題なく動作することに気付きました。Trace.TraceWarning() の直前に Thread.Sleep() を挿入したので、これで問題が解決するかどうかは興味深いところです。メッセージが Visual Studio のトレース リスナーに正常に記録されていることに気付いたことを付け加えておく必要があります。これが、速度またはタイミングに関連していると思わせる理由です。

1 日後、スレッドをスリープさせても違いがないことは明らかです。StringBuilder が状態を蓄積し、ループの終了後に単一の trace ステートメントが発生するように、ビジネス全体を書き直しました。3 つ以上のパスを必要とする複数の行が拒否された場合でも、Win32Exception はもはや明白ではありません。その特定の例外の正確な原因は、私には不明のままです。誰かがこの暗い隅に光を当ててくれることを願っていますが、章ごとに 1 つのログエントリが理想的であるため、これ以上追加することはありません。「回避策」は、Win32Exception がなくてもコードを改善することです。

話すのが早すぎた。邪悪な Win32Exception が戻ってきました。現状のコードは次のとおりです。

そして、これは例外からのスタック トレースです。

Write メソッドは、MSMQ メッセージの到着に応答して WCF によって呼び出されます。メッセージの内容は XML 文字列です。イベントログリスナーを削除すると、問題が解決します (これまでのところ)。

スタック トレースを調べると、179 行目は貼り付けられたコードの最後にあります。ここに再びあります:

XML によってイベント ログに対してメッセージが大きくなりすぎるためでしょうか。チャプター ファイルのサイズを制限する設定が既にあります。減らして様子を見てみます。

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

.net - Diagnosis on "Quota Exceeded" Win32Exception

Most of the time working as a .Net developer gives us the freedom to mess around in our high-level-of-abstraction world, but sometimes reality kicks you in the private parts and tells you to find a man who really understands.

I've just had one of those experiences. I think it'll suffice to list the corner data as an item list for you to understand what we have here:

  • Win2008 Server
  • 64Bit Environment
  • WPF Application used by multiple Clients simultaneously
  • Application is a launcher, that opens other applications using Process.Start()
  • Occasionally we get the exception listed below

EDIT #1 After some inspection, here's more detail:

  • Launching is a 2-Step-Process, the Launcher launches an intermediate window using Process.WaitForExit()

  • From the intermediate window, further processes can be started in the same way (Process.WaitForExit).

  • With only the intermediate window open and no user interaction, the launcher process's number of handles increases over time. The maximum increase we've seen here is 400 --> 6000 handles.

The facts added in the Edit really make me wonder whether there might be a handle leak in the framework somewhere. I'm trying to isolate the problem and check whether I can reproduce it from scratch. In the meantime, any kind of hint, idea, support or even chocolate is gladly accepted!

EDIT #2 : In an attempt to make the process responsive to PostMessage(), we removed the Thread.WaitForExit. Instead, we added a Handler for the Process's Exited event and sent the Launcher into a loop like the following:

The Exited-Handler sets foo to false and does nothing else. Still, the number of Handles rises (400 to 800 in half an hour).

EDIT #3 Here comes something interesting, at last.

This keeps it the way it's supposed to be, few handles, all nifty. Now that makes me wonder what's wrong here...I'll talk to the developer in charge again to check back what else the launcher does. So far, I've heard that it reads a few config values using XmlDocument.Load(), which is not an IDisposable - makes it kind of hard to produce any leakage here...

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

c# - ProcessStartInfo と Process を使用してメソッド内から slui.exe を実行しようとしています

C# のメソッドから slui.exe を実行すると問題が発生します。私はコードを使用しています:

ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Windows\System32\slui.exe"); Process p = new Process(); p.StartInfo = startInfo; p.Start(); p.WaitForExit();

しかし、私は Win32Exception を取得し続けます:「システムは指定されたファイルを見つけることができません」。

ProcessStartInfo を (@"C:\Windows\System32\cmd.exe") に変更すると、正常に起動します。

このコンテキストで slui.exe を実行すると何か問題がありますか?

ファイルが指定されたディレクトリにあることは確かなので、ここで何が問題になっているのかわかりません。

ac# メソッドから slui.exe を呼び出す方法はありますか?

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

c# - Win32Exeption:操作は正常に完了しました...グラフィック

私は解決策をいくつか検索しましたが、解決策を示している人は一人もいません...誰かがそれが発生する理由とそれを解決する方法を(簡単な方法で)説明していただければ幸いです:)

いつも同じ場所で発生します...プログラムを開始してから数分後。

これが発生する前に、数回(たとえば、40〜80回)実行されます。

Win32Exeptionが処理されませんでした:操作は正常に完了しました

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

c# - 32ビットWindowsでのWTSQueryUserToken後の「Win32Exception:操作は正常に完了しました」(64ビットは機能します)

ある時点でWin32APIと相互運用する必要がある小さなWindowsサービスをC#で開発しています。次の例外が発生しますが、これは私には意味がありません。

System.ComponentModel.Win32Exception: The operation completed successfully

このC#スニペットの最後の行の直後:

これが私が宣言WTSQueryUserTokenしている方法ですWtsApi32

いくつかの事実:

  • これは64ビットWin7では完全に機能しますが、32ビットWin7では失敗します
  • これが実行されたときに10,000ハンドル制限に達する方法はありません。これは、非常に小さなWindowsサービスでの最初のWin32呼び出しです。
  • 根本的なWin32エラーがあるかもしれないと思いますが、いくつかのバグがエラーコードを0で上書きし、「成功」エラーメッセージを表示しますが、これを確認または診断する方法がわかりません。
  • 例外をキャッチすると、sessionIdは1、userTokenPtrは0です。ただし、GetLastErrorは0を返すため、何が起こったのかわかりません。
  • この問題に対して私が見つけたほとんどすべての答えは、ユーザーコントロールの不適切な廃棄に関係していました。これはWindowsサービスであるため、そうではありません

WTSQueryUserToken宣言は32ビットWindowsでしか失敗しないため、何か問題があるに違いないと思います。これは、マーシャリングの問題だと思います。しかし、それが何であるかはまだわかりません。

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

c# - Windows 7 で \Local Settings\Application Data\ からアプリケーションを起動するとエラーが発生する

簡単なコード:

パスが C:\Users\Marat\AppData\Local\MyCompany\Program.exe の場合、問題ありません。

ただし、パス = C:\Users\Marat\Local Settings\Application Data\MyCompany\Program.exe の場合

例外を取得しています:

System.ComponentModel.Win32Exception(0x80004005): 無効な名前の要求が行われました。現在、要求された名前を取得できません

実際には、すべてうまくいきましたが、ある時点でこのエラーが発生し始めました。

0 投票する
4 に答える
1706 参照

c# - エラー-ファイルが確実に存在するのにファイルが見つかりません

を使用してプロセスを実行しようとしてSystem.Diagnostics.Process.Start()いますが、次のエラーが発生します。

cmdパスを再確認し、文字列をウィンドウにコピーして、問題なく実行されました。何が問題なのですか?

Win7 64ビットを使用しており、実行しようとしているプログラムはmingw64-x64でコンパイルされており、.NET2.0用にコンパイルしています。


提案を実行しようとしている間編集

コマンド文字列からフラグを削除することで問題が解決したことがわかりました(これが問題だとは思わなかったので、以前は言及しませんでした)

パラメータを使用してコマンドを実行するにはどうすればよいですか?