Проверьте ‘…файл ресурсов HiQPdf.dep’ можно найти рядом с HiQPdf.dll сборка и пользователь имеют права на чтение и выполнение для этого файла

#c# #asp.net #asp.net-mvc #pdf #shared-hosting

#c# #asp.net #asp.net-mvc #PDF #общий хостинг

Вопрос:

Я использую плагин HiQPdf для преобразования страницы (счета-фактуры клиента) в PDF на ASP.NET Приложение MVC. Он отлично работает на localhost, но выдает ошибку после того, как я опубликую его на сервере общего хостинга Godaddy. Это ошибка, которую он выдает:

Ошибка 0x4EC. Проверьте файл ресурсов ‘G: ** domain.com Content HiQPdf.dep’, который можно найти рядом с HiQPdf.dll сборка и пользователь имеют права на чтение и выполнение для этого файла. Вызовите метод SetDepFilePath(), если вы разместили файл HiQPdf.dep в другом месте

Я искал со вчерашнего дня безрезультатно, я подтвердил, что HiQPdf.dep существует в папке содержимого, это то, что я пробовал, и все они работали локально, но ни один из них не решил проблему в GoDaddy:

  1. Скопировали файл HiQPdf.dep в папку содержимого и использовали метод SetDepFilePath() для ссылки на него.

    // init model var model = _db.Invoice .Где(x => x.InvoiceID == InvoiceID amp;amp; !x.Черновик) .toArray() .Выберите(x => new InvoiceVM(x)).FirstOrDefault();

         // convert a page to string (update the path to the right page)
        string html = RenderViewToString(ControllerContext, "~/views/home/_InvoiceDoc.cshtml", model);
    
        // start creating pdf doc
        // the base URL to resolve relative images and css
        string thisPageUrl = this.ControllerContext.HttpContext.Request.Url.AbsoluteUri;
        string baseUrl = thisPageUrl.Substring(0, thisPageUrl.Length -"Home/ConvertThisPageToPdf".Length);
    
        // instantiate the HiQPdf HTML to PDF converter
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
    
        htmlToPdfConverter.SetDepFilePath(Server.MapPath("~/Content/HiQPdf.dep"));
    
        // render the HTML code as PDF in memory
        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(html, baseUrl);
    
        // send the PDF file to browser
        FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");
        fileResult.FileDownloadName = "Invoice-"   model.InvoiceNumber   ".pdf";
    
        return fileResu<
     
  2. Я изменил разрешения как для файла HiQPdf.dep, так и для папки содержимого в GoDaddy на полный контроль, тоже не сработало.
  3. Я установил уровень доверия на полный в web.config, все еще решая проблему.