2

psexec を使用してリモート サーバーでマネージド .net コンソール アプリを実行すると、非常に奇妙な問題が発生します。「プロセスが存在しないパイプに書き込もうとしました」というエラーが表示されます。

ここで、std::cout に出力するアンマネージ C++ プログラムを作成しましたが、問題なく動作します。

興味深いことに、cmd.exe をリモートで実行し、/u (Unicode) オプションを使用すると、エラーは発生しませんが、ガベージ テキストがコンソールにストリーミングされます。

ここで何が起こっているのか、誰か説明できますか?

乾杯、マーク

4

1 に答える 1

0

この問題を回避するために、.net アプリケーションを実行する .cmd スクリプトをリモートで実行し、その出力をファイルにリダイレクト (">") します。次に、スクリプトにファイルを「入力」すると、出力が返されます。

.net アプリケーションのコンソール出力が失われる理由はまだわかりませんが、この回避策でうまくいきます。

マーク

于 2009-06-15T07:48:37.737 に答える