System.Diagnostics.Process.Start访问被拒绝

时间:2016-01-05 19:03:09

标签: c#

我在Azure VM上的IIS下运行Web应用程序。它正在尝试执行Windows32应用程序。当我运行应用程序时,我总是得到这个例外 - > system.diagnostics.process.start访问被拒绝。我试图在命令提示符shell中执行该程序,它无需在管理下运行。

代码 -

string fileIn = us_post_directory + loan.loan_file;
string fileOut = us_ocr_directory + loan.loan_file;
string password = loan.password;

var p = new System.Diagnostics.Process
{
    StartInfo =
    {
        UseShellExecute = false,
        FileName = "C:\\Program Files <x86>\\PlotSoft\\PDFill\\PDFill.exe",
        //FileName = "E:\\PlotSoft\\PDFill\\PDFill.exe",
        Arguments =
            String.Format(" DECRYPT \"{0}\" \"{1}\" -password \"{2}\"", fileIn, fileOut,
                password)
    }
};
p.Start();

1 个答案:

答案 0 :(得分:2)

Web应用程序在IIS的上下文中运行,IIS无法访问许多Windows子系统。您需要将IIS(特别是站点的AppDomain)配置为作为您创建并授予其权限的服务帐户运行。根据应用程序的不同,服务帐户可能还需要用户配置文件和访问权限。其中一些步骤需要使用{{1}}配置本地计算机策略或域策略。

所需的确切步骤和权限取决于您尝试运行的应用程序以及它希望访问的内容。