5

ローカル開発マシンで小さなC#コンソールアプリケーション(TextMatcher.exe)を開発しましたが、これをライブ環境にデプロイする必要があります。これは、私が開発したジェネリック関数を持つ別のクラスライブラリを参照しており、将来のコンソールアプリケーションで使用および改善する予定です。

最終的に、この特定のアプリケーションはSSISパッケージ内から実行されますが、今のところ、から実行しようとしていcmdます。

これがプログラムからの実際の出力であるとは思わないでください。

E:/TextMatcher>TextMatcher.exe
No

E:/TextMatcher>

コンピュータは文字通り「いいえ」と言い、それ以上の情報を提供しません。私は、プログラムのどこにも、失敗やその他の理由で「いいえ」という単語を出力することを含めていません。

もちろん、ローカルでは正常に動作します。ユーティリティクラスライブラリのdllも含めるようにしました。コンソールアプリを正しくデプロイする方法に関する他の質問(ここここ)を読み、アドバイスに従いました。

NB:これは、問題の根本的な原因である「いいえ」という単語の使用のために、Googleにとっても非常に難しいことを証明しています...

編集-今は機能しているようです...ローカルマシンからリモートマシンにファイルを再度コピーしました...地球上で何が起こったのかを理解できるように、ファイルを再び壊そうとしています。私がそうするまで、私は答えを受け入れません。そうすれば、人々はそれにもう少し光を当てることができるでしょう。いずれにせよ、それはかなり困惑しています。

4

3 に答える 3

3

誰かがサーバーのイメージファイル実行オプションのレジストリ設定を変更して、デバッガーを自動的に起動した可能性があります。

つまり、レジストリキーHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution optionsを調べて、実行可能ファイルの名前と一致するエントリがあるかどうかを確認します。

于 2012-07-18T16:00:01.773 に答える
1

必要なフレームワークコンポーネント、つまり適切なドットネットフレームワークがインストールされているかどうかを確認します。4.0を使用し、3.5をインストールしたアプリケーションは、非常に奇妙な動作を引き起こす可能性があります。

非常に単純なウィンドウアプリケーションを作成して、デプロイメントマシンで起動してみてください(これにより、不足しているものがさらに役立つ可能性があります)。

必要なDLL(クラスライブラリなど、開発したもの)がコンソールアプリケーションで到達可能かどうかを確認します。そして、あなたのDLLの正しいバージョンが一致するかどうかを確認してください!

コンソールアプリケーションのプラットフォーム設定を確認してください。それらは、アプリケーションを実行したいマシンと一致していますか?(win64とwin32の不一致)

これらすべてが役に立たない場合は、たとえば、depends.net、checkasmなどを使用して、デプロイメントマシンで実行可能ファイルを検査してみてください。

于 2012-07-18T16:00:57.197 に答える
0

実稼働環境でAppLockerが実行されていますか?コマンドラインで「いいえ」を出力するように出力をカスタマイズできるかどうかはわかりません。Applockerを使用すると、署名された実行可能ファイルのみを実行するようにシステムを制限できるため、Applockerが思い浮かびます。Textmatcher実行可能ファイルが署名されていない場合、すぐにシャットダウンされる可能性があります。あなたが能力を持っているなら、私はあなたのバイナリに署名することが振る舞いを変えるかどうかを見たいと思います。

于 2012-07-18T16:55:34.477 に答える