angular - .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");
}
}
任何帮助深表感谢!
解决方案
问题是由缺少 dll 的糟糕库产生的。答案在此链接中找到。 我在根项目中复制了 libwkhtmltox.dll 和 libwkhtmltox.so,并将 CopyToOutputDirectory 属性设置为“始终复制”。
推荐阅读
- javascript - jQuery 动画计数器 - 十进制或整数
- python - cx_Oracle 'SELECT INTO' 绑定变量问题 - ORA-01036:非法变量名称/编号
- ios - 即使应用程序在每个 X 时间间隔后快速关闭,如何在 iOS 中将数据发送到服务器
- javascript - 请求错误:必须在复杂的 MSSQL 查询中声明标量变量
- python - 在 Django urls 中,调用视图时什么时候需要使用 as_view() 方法?
- javascript - Vue.js
仅在最后一个元素上应用动画 - python - 如何从 Wikimedia BS4 获取作者
- javascript - React.js 给出无法读取未定义的道具,当项目中没有道具时
- c - 盒子模糊简化 CS50
- redis - 如何使用 YCSB 对 2 个 Redis 节点进行基准测试