1

我有一个用于启动进程的网页。该进程是具有配置文件的 .net 2.0 可执行文件。如果我自己运行可执行文件,我没有错误。该进程正在启动可执行文件(它正在写入日志文件,我可以看到已生成输出)。

一旦我的可执行文件尝试引用它的配置文件(但仅当它已从网页启动时),它就会引发异常(“配置系统无法初始化”),其中包含以下内容:

System.Configuration.ConfigurationErrorsException:加载配置文件时出错:访问被拒绝。

我有点难过。如何让我的可执行文件加载配置文件?

顺便说一句,我确实检查了当前目录是否仍然是可执行文件的目录。

编辑这是我的代码:

        System.Diagnostics.Process p = new System.Diagnostics.Process();
        p.StartInfo.UseShellExecute = true;
        string mappedFile = Server.MapPath(@".\my.exe");
        p.StartInfo.FileName = mappedFile;
        p.StartInfo.WorkingDirectory = Server.MapPath(@".\");
        p.StartInfo.RedirectStandardOutput = false;
        string eco = COAuditBox.Text;
        DateTime now = DateTime.Now;
        string filename = eco + "_" + String.Format("{0:yyyyMMddHHmmss}", now) + ".txt";
        string redirectUrl = "reports/" + filename;
        string redirectFile = Server.MapPath(redirectUrl);
        //File.WriteAllText(redirectFile, "TEST\t\n");
        p.StartInfo.Arguments = eco + " \"" + redirectFile + "\"";
        p.Start();
        p.WaitForExit();
4

1 回答 1

1

您的 Web 应用程序在哪个用户下运行?此用户可能没有访问 .config 文件的正确权限。要么给用户正确的权限,要么在不同的帐户下运行应用程序。

更新:要诊断问题,请使用Microsoft/sysinternals 的 Process Monitor。它允许您观看文件访问操作。您可以按进程名称和/或文件名进行过滤。这应该为您指明正确的方向。

于 2012-12-02T22:33:55.443 回答