В Live Server (Windows Server 2008 R2 Enterprise) PDF не генерируется с помощью wkhtmltopdf.exe, но работает на локальном хосте

Мы используем wkhtmltopdf.exe (до 10 месяцев он работал без проблем), но через несколько дней мы столкнулись с проблемой с wkhtmltopdf.exe. На данный момент мы получаем ошибку от wkhtmltopdf.exe, и PDF не генерирует для нас, мы используем JavaScripts. Когда я нажимаю, страница переходит к нашей странице написанной ошибки. Наша проблема в PDF заключается не в версиях от wkhtmltopdf.exe. Наш код и приложения очень понятны.wkhtmltopdf.exe работает локально, а не на живом сервере (Windows 2008 R2 enterprise)? Мы перепробовали все версии с (wkhtmltopdf site) [ http://wkhtmltopdf.org/downloads.html] все они работали на локальном хосте, но не на живом сервере. Наша версия на локальном сервере iis (7.5) такая же, как на живом сервере о версии iis (7.5) что делать дальше?? в localhost pdf генерируется с версией iis (7.5), имеющей ту же версию в Windows Server 2008 R2 Enterprise, но PDF не генерируется.

   protected void Export(object sender, EventArgs e)
    {          
        String GlobalDomainName = System.Configuration.ConfigurationManager.AppSettings["live_domainName"];

        string url = "PropertyEWC.aspx?id=" + PropertyId + "&bid=" + UserData.BranchId + "&aid=" + UserData.CompanyId;


        string args = string.Format("\"{0}\" - ", GlobalDomainName + url);
        var startInfo = new ProcessStartInfo("C:\\Program Files\\wkhtmltopdf1\\bin\\wkhtmltopdf.exe", args)
        {

            UseShellExecute = false,
            CreateNoWindow = true,
            RedirectStandardOutput = true

        };
        var proc = new Process { StartInfo = startInfo };
        proc.Start();
        string output = proc.StandardOutput.ReadToEnd();
        byte[] buffer = proc.StandardOutput.CurrentEncoding.GetBytes(output);
        proc.WaitForExit();
        proc.Close();
        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", "attachment;filename=ElectronicWindow.pdf");
        Response.BinaryWrite(buffer);
        Response.End();
    }

В приведенном выше коде мы получаем ошибку в proc.start(), что для решения этой ошибки является любым альтернативным методом для proc.start.

1 ответ

Решение

Это работает для меня, делая изменения в свойствах wkhtmltopdf.exe. Щелкните правой кнопкой мыши по файлу wkhtmltopdf.exe, выберите свойства. В свойствах выберите опцию безопасности. В этом вы можете изменить параметры доступа.

Другие вопросы по тегам