我在ASP.NET Web应用程序中使用Pdf2Text。Web界面允许将PDF文件上传并转换为文本。要转换为文本,我使用下面的C#函数,该函数依赖于通过Process
库运行Pdf2Text程序。
void ExtractOCR(string input, string output)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = true;
startInfo.FileName = Server.MapPath("ocr/Pdf2Text.exe");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = input + " " + output;
Process exeProcess;
using (exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
}
我已经仔细检查了输入和输出路径是否都有效。但是,当我运行Web应用程序时,出现以下错误。
我已经尝试了即时调试器,但是由于某种原因它甚至无法运行。Pdf2Text是一个预编译的文件,我没有它的源代码。我相信这是文件的下载站点,但不确定100%。我已经在线检查了类似错误的解决方案,但没有一个起作用。
感谢@GraDea建议您将池的权限调查到Web应用程序目录中,这是解决方案。
该Web应用程序位于自定义位置(不是的默认ASP服务器目录inetpub\wwwroot
)。提出建议后,我尝试将池用户添加到Web应用程序的自定义位置,但这似乎不起作用。接下来,我将Web应用程序移动到该inetpub\wwwroot
位置,并将池用户添加到该文件夹,通过IIS重新启动了站点,现在一切恢复正常。
为了将来引用给任何人,解决类似问题的最简单方法是确保您的Web应用程序位于默认的IIS服务器目录中,并且将站点池的用户名添加到应用程序文件夹的安全权限中。我没有尝试过针对自定义位置的修复程序,因为它对我而言并不那么重要,但是我猜想它很可能还将涉及添加必要的IIS默认池用户(例如IIS_IUSRS)和站点池的用户。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句