Если я создаю PDF (pdf1) с изображением (image1), pdf1 показывает image1, как и ожидалось.
Если я затем заменю image1 на image2 на сайте и создаю новый pdf2, pdf2 показывает старое изображение1, и это моя проблема (кеширование?).
Для получения дополнительной информации:
Если я остановлю свою программу в 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();
}
ProcessRequest
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);
Я трачу целый день на это сейчас, любые комментарии будут очень ценными.