执行C++。使用ProcessStartInfo从asp.net中的IIS执行 我在C语言中从Web服务中执行简单的C++(.exe)。它在开发环境(在VisualStudio中)中运行良好,但当我在IIS中托管时,它的进程不会被执行。我试过使用简单的C#控制台应用程序,它对我来说很好。 我已经授予了 每个人 IUSR 当地服务 网络服务 网络 IIS_用户

执行C++。使用ProcessStartInfo从asp.net中的IIS执行 我在C语言中从Web服务中执行简单的C++(.exe)。它在开发环境(在VisualStudio中)中运行良好,但当我在IIS中托管时,它的进程不会被执行。我试过使用简单的C#控制台应用程序,它对我来说很好。 我已经授予了 每个人 IUSR 当地服务 网络服务 网络 IIS_用户,c#,asp.net,web-services,iis,C#,Asp.net,Web Services,Iis,从IIS到编辑权限 [WebMethod] public string GETOCR() { string OCROutput =""; ProcessStartInfo startinfo = new ProcessStartInfo("C:\\BSG\\ProcessOCR.exe", "12,13;964,15;964,634;9,634 \"C:\\BSG\\20150709_224156.jpg\" "); starti

从IIS到编辑权限

[WebMethod]
    public string GETOCR()
    { 
        string OCROutput ="";
        ProcessStartInfo startinfo = new ProcessStartInfo("C:\\BSG\\ProcessOCR.exe", "12,13;964,15;964,634;9,634 \"C:\\BSG\\20150709_224156.jpg\" ");
        startinfo.CreateNoWindow = true;
        startinfo.UseShellExecute = false;
        startinfo.RedirectStandardOutput = true;
        startinfo.WindowStyle = ProcessWindowStyle.Normal;
        try
        {
            using (Process exeProcess = Process.Start(startinfo))
            {
                OCROutput = exeProcess.StandardOutput.ReadToEnd();
                //Response.Write(OCROutput);



                exeProcess.WaitForExit();
            }

        }
        catch (Exception)
        {

            throw;
        }

        return OCROutput;
    }

您需要检查站点应用程序池的帐户。要执行此操作,请在IIS中单击您的站点(对IIS 7及以上版本有效),然后单击右侧操作面板中的基本设置。您将看到应用程序池名称,记住它并单击“取消”。然后转到应用程序池,找到您记得的应用程序池并选择它。单击右侧的编辑应用程序池面板中的高级设置…。在过程模型部分中查找标识。标识值是一个帐户,您需要在安全选项卡中为文件C:\BSG\ProcessOCR.exe(不适用于站点文件夹!)和该程序将向/从中写入/读取文件的文件夹(如果有)设置权限


您是否期望看到它的执行?这不是在IIS使用的用户帐户下运行的情况,因此将与您和您的桌面隔离。如果流程启动失败,将引发异常,是这样吗?exe是否出现在所有用户任务列表中?您如何知道它没有被执行?你在展示的C代码中有什么异常吗?什么例外?