1

ASP.NET アプリケーションから外部プロセスを実行中に問題が発生しました。

プロセスは次のように実行されます。

[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public static WebResult generateSomething(string language)
{
            ProcessStartInfo psi = new ProcessStartInfo();
            psi.UseShellExecute = false;
            psi.RedirectStandardError = true;
            psi.RedirectStandardOutput = true;
            psi.RedirectStandardInput = true;
            psi.WindowStyle = ProcessWindowStyle.Hidden;
            psi.CreateNoWindow = true;
            psi.ErrorDialog = false;
            psi.WorkingDirectory = Environment.CurrentDirectory;
            psi.FileName = String.Format("\"{0}\"", Path.Combine(appDir, Properties.Settings.Default.PATH_TO_APP_TEXT));
            psi.Arguments = arguments.ToString();

            modeller.log.Info("Arguments: " + psi.Arguments);

            var outputText = new StringBuilder();
            int exitCode;

            var result = new WebResult();

            using (Process process = new Process())
            {
                process.StartInfo = psi;
                process.OutputDataReceived += (sendingProcess, args) => { outputText.Append(args.Data); };
                process.ErrorDataReceived += (sendingProcess, args) => { outputText.Append(args.Data); };
                process.Start();
                process.BeginOutputReadLine();
                process.BeginErrorReadLine();
                process.WaitForExit();
                exitCode = process.ExitCode;
            }

            string outText = outputText.ToString();

プロセスが (成功したかどうかに関係なく) 終了し、メソッドが終了した直後に ASP.NET IIS セッションが終了するため、Cookie を介した認証コンテキストが壊れます。

誰でもこの問題を解決できますか? 前もって感謝します

4

0 に答える 0