我有一个MVC应用程序,我想从控制器操作调用EXE。我使用以下代码。这在我的本地盒子和我的测试服务器上工作正常。但是在我的生产服务器上我得到了
.NET Runtime版本4.0.30319.34209 - 初始化分析API附加基础结构时出现故障。此过程不允许分析器附加。 HRESULT:0x80004005。进程ID(十进制):8332。消息ID:[0x2509]。
其次是: 应用程序:StaffAppraisalStart.exe Framework版本:v4.0.30319描述:由于未处理的异常,进程已终止。异常信息:System.IO.FileLoadException Stack:at StaffAppraisalStart.Program.Main(System.String [])
安全性是一样的。任何想法?
// Use ProcessStartInfo class
ProcessStartInfo startInfo = new ProcessStartInfo(ConfigurationManager.AppSettings["staffevalstartexe"]);
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.RedirectStandardOutput = true;
startInfo.Arguments = String.Format("/oneoff:true /appraisaltypeid:{0} /duedate:{1} /userlogin:{2} ", appraisalTypeID, dateDue, reviewee);
try
{
// Start the process with the info we specified.
// Call WaitForExit and then the using statement will close.
using (System.Diagnostics.Process exeProcess = System.Diagnostics.Process.Start(startInfo))
{
//
StringBuilder q = new StringBuilder();
//while (!exeProcess.HasExited)
//{
// q.Append(exeProcess.StandardOutput.ReadToEnd());
//}
exeProcess.WaitForExit();
q.Append(exeProcess.StandardOutput.ReadToEnd());
Log.Instance.Error(q);
}
um.Status = "ok";
um.Message = "Evaluation flow started.";
}