2011-10-05 68 views
0

我的ASP應用程序出現問題。當我在服務器上運行進程時,我收到了cscript的錯誤。 當我在本地進行調試時,頁面正常工作並且進程正確執行,但是當我將應用程序部署到IIS並從另一臺機器瀏覽器運行時,它在進程啓動時崩潰。從ASP.NET應用程序啓動進程時cscript崩潰

我想這是用戶的問題,所以我將這一行添加到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(); 
    } 

有誰有什麼可能會發生什麼想法?今天我在這裏呆了一段時間。

謝謝你。

回答

0

您可能需要加載用戶的配置文件

startInfo.LoadUserProfile =真

編輯

嘗試創建一個新的管理員帳戶一個新的應用程序池。如果這樣做可以將用戶從管理員組中刪除,並創建一個具有應用程序所需權限的新組。

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

+0

這也沒有工作。謝謝。 – NicoRiff

+0

@Ok,那麼我懷疑是ASPNET帳戶的一般權限問題;可執行文件位於何處,是否強烈命名/簽名等。另請參閱已更新的答案 – sehe

+0

我也試過這個...它對我沒有效果。 – NicoRiff