私はいくつかのコンソール アプリケーションを作成し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 の終了値に戻ると確信しています。