我在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应用程序时,我收到以下错误。
我尝试过Just-In-Time调试器,但由于某些原因它甚至都不会运行。 Pdf2Text是一个预编译文件,我没有它的源代码。我相信 this 是该文件的下载网站,但不是100%肯定。我已经在网上查了解类似错误的解决方案,但没有一个有效。
答案 0 :(得分:0)
感谢@GraDea建议查看池的权限进入Web应用程序目录,这是解决方案。
Web应用程序位于自定义位置(而不是inetpub\wwwroot
的默认ASP服务器目录)。在建议之后,我尝试将池用户添加到Web应用程序的自定义位置,但这似乎不起作用。接下来,我将Web应用程序移动到inetpub\wwwroot
位置并将池用户添加到该文件夹,通过IIS重新启动该站点,现在一切都恢复正常。
为了将来对任何人的引用,对类似问题的最简单修复是确保您的Web应用程序位于默认的IIS服务器目录中,并且您的站点池的用户名已添加到应用程序文件夹的security permissions。我没有尝试修复自定义位置,因为它对我来说不是那么重要,但我猜它很可能还涉及添加必要的IIS默认池用户(例如IIS_IUSRS)和站点池的用户。