Убедитесь, что файл ресурсов «...\HiQPdf.dep» находится рядом со сборкой HiQPdf.dll, и что у пользователя есть разрешениC#

Место общения программистов C#
Ответить
Anonymous
 Убедитесь, что файл ресурсов «...\HiQPdf.dep» находится рядом со сборкой HiQPdf.dll, и что у пользователя есть разрешени

Сообщение Anonymous »

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

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

Я искал со вчерашнего дня безрезультатно, я подтвердил, что HiQPdf.dep существует в папке «Содержимое», это то, что я пробовал, и все работало локально, но ни одна из них не решила проблему на GoDaddy:
  • Скопировал файл HiQPdf.dep в папку Content и использовал метод SetDepFilePath() для ссылки на него.
    // init model
    var model = _db.Invoice.Where(x => x .InvoiceId ==voiceId && !x.Draft)
    .ToArray().Select(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 fileResult;
    
  • Я изменил разрешения для файла HiQPdf.dep и папки Content на GoDaddy на полный доступ, тоже не сработало.
  • Я установил в файле web.config уровень доверия «Полный», но проблема все равно решена.



Подробнее здесь: https://stackoverflow.com/questions/656 ... dll-assemb
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»