检查HiQPdf.dll程序集附近是否可以找到'...\HiQPdf.dep'资源文件,并且用户对该文件有读取和执行权限

问题描述 投票:0回答:1

我正在使用 HiQPdf 插件在 ASP.NET MVC 应用程序上将页面(客户发票)转换为 pdf。它在本地主机上运行良好,但在我将其发布到 Godaddy 共享托管服务器后抛出错误。这是它抛出的错误:

错误 0x4EC。检查在 HiQPdf.dll 程序集附近是否可以找到“G:**\domain.com\Content\HiQPdf.dep”资源文件,并且用户对该文件具有读取和执行权限。如果您将 HiQPdf.dep 放在不同的位置,请调用 SetDepFilePath() 方法

我从昨天开始就一直在搜索,但没有结果,我已经确认 Content 文件夹中存在 HiQPdf.dep,这些是我尝试过的方法,并且都在本地工作,但没有解决 GoDaddy 上的问题:

  1. 将 HiQPdf.dep 复制到 Content 文件夹并使用 SetDepFilePath() 方法引用它。

    //初始化模型 var model = _db.Invoice.Where(x => x.InvoiceId == 发票Id && !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;
    
  2. 我将 GoDaddy 上的 HiQPdf.dep 文件和 Content 文件夹的权限更改为完全控制,也不起作用。

  3. 我已在 web.config 中将信任级别设置为“完全”,仍然可以解决问题。

c# asp.net asp.net-mvc pdf shared-hosting
1个回答
0
投票

我有同样的问题。我通过将文件 HiQPdf.dep 文件复制到“bin”文件夹中来修复它。

© www.soinside.com 2019 - 2024. All rights reserved.