首页 > 解决方案 > .NET Core API 调用在发布后返回 400 Bad request

问题描述

我正在使用 DinkToPdf 库在 .NET Core 2.2 / Angular 应用程序上创建 pdf 文件。在 localhost 上测试它没有问题,但发布的版本返回 400 Bad request。我使用授权令牌和其他参数调用控制器的 Print() 方法。正如我所说,在调试时一切正常。

[Authorize]
[Route("api/[controller]")]
public class ExpenseController : Controller
{
        private IConverter _converter;
        public ExpenseController(IConverter converter)
        {
            _converter = converter;
        }

        [HttpPost("[action]")]
        public IActionResult Print()
        {
            // IMPLEMENTATION

            var pdf = new HtmlToPdfDocument()
            {
                GlobalSettings = globalSettings,
                Objects = { objectSettings }
            };

            var file = _converter.Convert(pdf);
            return File(file, "application/pdf", "Expense Report.pdf");
        }
}

任何帮助深表感谢!

标签: angularasp.net-core.net-coredinktopdf

解决方案


问题是由缺少 dll 的糟糕库产生的。答案在此链接中找到。 我在根项目中复制了 libwkhtmltox.dll 和 libwkhtmltox.so,并将 CopyToOutputDirectory 属性设置为“始终复制”。


推荐阅读