0

私はいくつかのコンソール アプリケーションを作成しxp_cmdshellました。

そこで、次のクエリを書きました。

declare @sqlcmd varchar(200)
SET @SQLCmd = 'C:\Automation\ProfileCreator\ProfileManagement.exe ' + @someParameter
EXEC xp_cmdshell @SQLCmd 

コンソール アプリケーションはファイル操作を行い、PSEXEC を呼び出して別のアセンブリを外部サーバーにコピーし、そこで実行します。

cmdで実行しようとすると、完全に機能します(すぐに閉じます)。ストアド プロシージャを使用して実行している場合、停止することはありません。すべてのアセンブリ ロジックを実行する場合と実行しない場合があります。よくわかりません。実行方法の違いは何ですか? (cmd と xp_cmdshell)

どうすれば解決できますか?

ところで-私の両方のアセンブルはで実行を終了しましたEnviorment.Exit(0 or 1)。両方の構造は次のようになります。

  static void Main(string[] args)
        {

            try
            {
              logic..
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
                Environment.Exit(1);
            }
            finally
            {
                Environment.Exit(0);
            }
}

したがって、いずれの場合でも、両方のアセンブリが Sql Server の終了値に戻ると確信しています。

4

1 に答える 1