首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows C# -错误代码退出调试过程-1073741502

Windows C# -错误代码退出调试过程-1073741502
EN

Stack Overflow用户
提问于 2011-03-20 05:32:32
回答 1查看 3.9K关注 0票数 6

短版

当进程以错误代码-1073741502退出时,如何确定哪个DLL未能加载(以及可能的原因)?

长版本

我试图为Mercurial编写一个漂亮的组钩子,作为这个钩子的一部分,我需要获得运行命令的输出:

hg log

我用于启动和运行hg.exe进程的代码如下:

代码语言:javascript
复制
string Command = "log";
Process p = new Process();

ProcessStartInfo psi = p.StartInfo;
p.StartInfo.FileName = @"C:\Program Files (x86)\Mercurial\hg.exe";

psi.CreateNoWindow = true;
psi.LoadUserProfile = true;
psi.RedirectStandardError = true;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;

psi.WorkingDirectory = Environment.CurrentDirectory;

p.StartInfo.Arguments = Command;


// Pass-through environment variables
psi.UserName = Properties.Settings.Default.HG_User;
psi.Domain = Properties.Settings.Default.HG_Domain;
psi.Password = new System.Security.SecureString();

foreach (char c in Properties.Settings.Default.HG_Pass)
{
    psi.Password.AppendChar(c);
}

p.Start();      
p.WaitForExit();

问题是,该进程一直使用错误代码-1073741502退出,而不输出任何关于标准输出或标准错误的内容。在网上进行了一些研究之后,我发现这个错误代码与应用程序未能正确初始化有关(可能找不到DLL的),但我不知道如何解决它。

请记住,当我在web上推到存储库时,会调用这个钩子(因此,IIS通过Python调用Mercurial CGI,它将这个程序配置为钩子)。

在一个完全不同的web应用程序中,我能够很好地运行HG命令,我还可以通过执行runas /user:<same account as in the code> /noprofile cmd.exe并手动输入hg命令行来运行hg命令。

另外,如果我设置了UseShellExecute = true,那么它执行得很好,但是我无法获得标准输出。我真的很想对web应用程序进行web服务调用,它能够成功地执行这个命令,但这将是一个非常难看的解决方案。

知道这东西为什么不执行吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-19 23:29:07

我能够通过禁用UAC来解决这个问题,所以这听起来像是一个权限问题,尽管我不知道确切的细节。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5366965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档