これを読んでくれてありがとう。
環境はAutoSysスケジューラで動作していますWindows Serverとジョブは、FTPを介していくつかのファイルを取得し、VB.NETアプリケーションを使用してそれらを処理するPerlスクリプトを呼び出します。クライアントが変更を要求した後、私たちは先週、新しいバージョンのVB.NETアプリケーションをプッシュしました。
新しいバージョンがプッシュされたがスクリプトがどういうわけか古いコードが実行されています(ログ出力と結果ファイルでわかります)。デスクトップからスクリプトを実行すると、新しいコードが実行されますが、スケジューラから実行すると古いコードが実行されます。
アプリの古いバージョンはもう利用できないので、これは私たちにとって困難です。私たちはそれを新しいバージョンでコピーしました(繰り返しますが、実行すると機能します)。
何かご意見は?私はこれを読むために時間を割いて私を助けようとしていることに感謝します!
回答:
回答№1は0Autosysの古典的な問題のように聞こえますデスクトップから実行しているものと職場環境が異なる。コマンドプロンプトからそのサーバー上のジョブのユーザーIDとして実行しても、コマンドは機能しますか?その場合は、set> user_env.txtを実行します。
既存のautosysジョブを新しいジョブにコピーしてコマンドをset> autosys_env.txtに置き換えます。その後、ジョブを実行してください。 user_env.txtとautosys_env.txtを調べて、そのエラーの原因となる可能性のある違いについて調べてください。 PATH値をよく見てください。コマンドプロンプトとジョブからperl -vと同等のvb.netを実行する必要があるかもしれません。 where.exeがインストールされている場合は、どのファイルが配置されているかを確認するのに役立ちます。