有几天我不知道如何解决我的问题。
我需要返回基于ID动态生成的用户PDF文档。我用这个NReco.PdfGenerator.LT。当我直接从VS2017运行项目时,一切正常,文件下载。但是,如果我在IIS服务器上发布项目然后尝试单击该按钮,将打开一个不存在的页面(HTTP ERROR 404)。
按钮:
<a asp-controller="Dokumenty" asp-action="PobierzPotwierdzenieDokPdf" asp-route-DokID="@item.Dok_DokID" class="btn btn-warning btn-sm"><i class="glyphicon glyphicon-print" title="Drukuj PDF"></i></a>
控制器:
public async Task<FileResult> PobierzPotwierdzenieDokPdf(int DokID)
{
var dokument = _context.Dokumenty.FirstOrDefault(i => i.Dok_DokID == DokID);
var notatki = _context.DokumentyNotatki.Where(d => d.DokNot_DokID == DokID);
viewDokumentPotwierdzeniePdf viewDokumentPotwierdzeniePdf = new viewDokumentPotwierdzeniePdf()
{
Dokument = dokument,
DokumentNotatka = notatki
};
var htmlContent = await _viewRenderService.RenderToStringAsync("Dokumenty/DokumentPotwierdzeniePdf", viewDokumentPotwierdzeniePdf);
var htmlToPdf = new HtmlToPdfConverter
{
PageHeight = 210,
PageWidth = 148,
Margins = new PageMargins() { Bottom = 5, Left = 5, Right = 5, Top = 5 },
Orientation = PageOrientation.Landscape,
PageFooterHtml = "<div style='font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: 10px; text-align: center; color: grey;'>Strona <span class='page'></span> z <span class='topage'></span> | Operator drukujący: " + HttpContext.Session.GetString("Ope_Nazwisko") + " | Data wydruku: " + DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + " | <b>System ERP Polimer</b></div>"
};
htmlToPdf.License.SetLicenseKey("PDF_Generator_Bin_Examples_Pack_0000000000", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
htmlToPdf.PdfToolPath = @"C:\Program Files\wkhtmltopdf\bin\";
byte[] pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
FileResult fileResult = new FileContentResult(pdfBytes, "application/pdf")
{
FileDownloadName = dokument.Dok_NrKancelaryjny.Replace("/", "_") + ".pdf"
};
dokument.Dok_Wydruk = 1;
_context.Entry(dokument).State = EntityState.Modified;
await _context.SaveChangesAsync();
return fileResult;
}
IIS正在尝试打开网址http://domainname.int/Dokumenty/PobierzPotwierdzenieDokPdf?DokID=77,其中末尾的数字是ID。但该页面实际上并不存在。
请帮忙。我究竟做错了什么? 附:对不起我的英文:)