从Process.start调用EXE的.Net错误

时间:2014-09-19 18:50:56

标签: c# asp.net-mvc diagnostics

我有一个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.";
}

0 个答案:

没有答案