从ASP.NET应用程序启动进程时,cscript崩溃

时间:2011-10-05 18:38:16

标签: c# javascript asp.net process wsh

我的ASP应用程序出了问题。我在服务器上运行进程时从cscript收到错误。 当我在本地调试时,页面工作正常并且过程正确执行,但是当我将应用程序部署到IIS并从另一台机器资源管理器运行它时,它会在进程启动时崩溃。

我想这是用户的问题,所以我将这一行添加到web.config中,以确保这一点。

<identity impersonate="true" userName="domain\user" password="password" />

然后,我添加了我希望进程开始的用户,但页面一直在崩溃。每次启动进程时(按下按钮时)我在服务器端获得的错误是:

cscript.exe - 应用程序错误

应用程序无法正确初始化(0xc0000142)。单击“确定”以终止应用程序

启动流程的代码是:

    public static void actualizarPersona(csPersona persona)
    {

        string nombreArchivo = "card.js";

        File.WriteAllText(nombreArchivo, persona.setFileActualizarPersona(persona), Encoding.GetEncoding(1252));


        Process proc = new Process();

        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = true;
        startInfo.UseShellExecute = false;
        startInfo.RedirectStandardOutput = true;
        startInfo.RedirectStandardError = true;
        startInfo.FileName = "cscript.exe";
        startInfo.Arguments = nombreArchivo;
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.UserName = "Administrator";

        SecureString password = new SecureString();
        string contraseña = "myPassword";
        foreach (char c in contraseña)
        {
            password.AppendChar(c);
        }

        startInfo.Password = password;
        proc.StartInfo = startInfo;
        proc.Start();
        proc.WaitForExit();
        proc.Close();
        proc.Dispose();
    }

有没有人知道可能发生的事情?我今天被困在这里一段时间。

谢谢你。

1 个答案:

答案 0 :(得分:0)

您可能需要加载用户的个人资料

startInfo.LoadUserProfile = true

修改

尝试使用新的管理员帐户创建新的应用池。如果可行,则从管理员组中删除用户,并创建一个具有该应用所需权限的新组。

(见trying to run a process from an asp.net application