使用ASP.NET、C#和Winnovative.WnvHtmlConvert.PdfConverter重新创建新的PDF仍然保留旧图像

使用ASP.NET、C#和Winnovative.WnvHtmlConvert.PdfConverter重新创建新的PDF仍然保留旧图像,c#,asp.net,caching,pdf,pdf-generation,C#,Asp.net,Caching,Pdf,Pdf Generation,如果我使用图像(image1)构建PDF(pdf1),pdf1将按预期显示image1 如果我在站点中将image1替换为image2,并创建一个新的pdf2,pdf2将显示旧的image1,这就是我的(缓存?)问题 有关更多信息: 如果我在VS中停止我的程序并关闭所有开发服务器(本地ISS?),再次运行该程序并生成一个新的pdf(pdf3),pdf3将显示image2(我生成的最后一个图像),这是正确的 所以我想我不会结束一些事情,或者储存太多 如何创建PDF public void

如果我使用图像(image1)构建PDF(pdf1),pdf1将按预期显示image1

如果我在站点中将image1替换为image2,并创建一个新的pdf2,pdf2将显示旧的image1,这就是我的(缓存?)问题

有关更多信息:

如果我在VS中停止我的程序并关闭所有开发服务器(本地ISS?),再次运行该程序并生成一个新的pdf(pdf3),pdf3将显示image2(我生成的最后一个图像),这是正确的

所以我想我不会结束一些事情,或者储存太多


如何创建PDF

    public void CreateSingleFrontpage(string url)
    {
        var pdfConverter = new PdfConverter(0);
        PdfConverter.LayoutHtmlTimeoutSec = 500;
        pdfConverter.NavigationTimeout = 5000;

        pdfConverter.LicenseKey = "****************************";

        pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
        pdfConverter.PdfDocumentOptions.PdfCompressionLevel =
PdfCompressionLevel.Normal;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation =
PDFPageOrientation.Portrait;
        pdfConverter.PdfDocumentOptions.ShowHeader = false;
        pdfConverter.PdfDocumentOptions.ShowFooter = false;
        pdfConverter.PdfDocumentOptions.LeftMargin = 80;
        pdfConverter.PdfDocumentOptions.RightMargin = 40;
        byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl(url);

        // send the PDF document as a response to the browser for download
        System.Web.HttpResponse response =
 System.Web.HttpContext.Current.Response;

        response.Clear();
        // response.CacheControl = "no-cache";
        response.AddHeader("Content-Type", "binary/octet-stream");
        response.AddHeader("Content-Disposition", "attachment; 
filename=PDF_Temp.pdf; size=" + pdfBytes.Length);
        response.Flush();
        response.BinaryWrite(pdfBytes);
        response.Flush();
        response.End();
    }

处理请求

public void ProcessRequest(HttpContext context)
    {
        int skemaId = int.Parse((context.Request.QueryString["SkemaId"]));
        int witchImage = int.Parse(context.Request.QueryString["witchImage"]);

        byte[] imageData = new BLL.Handlers.PDFForsideHandlers().GetImage(
witchImage, skemaId);
        if (imageData != null)
        {
            context.Response.ContentType = "image/jpg";
            context.Response.BinaryWrite(imageData);
//                context.Response.Flush();
//                context.Response.Clear();
//                context.Response.Close();
//                context.Response.End();
        }
    }

asp.net控件

Image image = new Image();
image.ImageUrl = url;
image.DataBind();
PlaceHolder1.Controls.Add(image);


我现在花了一整天的时间在这上面,任何评论都会很有价值。

结果是它在另一台计算机上工作。所以一定是我的FF和Chrome设置,或者浏览器处理PDF的功能不好。如果其他人关心..

Winnovative正在从C:\Windows\Temp\Temporary Internet Files\Content.IE5 for IE9下的缓存中获取图像。此“windows”ie缓存目录因您的ie版本而异。

我又做了一次浏览器测试,我想我的第一次测试不太好。它在IE中工作。到目前为止,我主要在FF中测试。我现在可以看出,它在Chrome中也不起作用。