【发布时间】:2021-07-06 18:48:24
【问题描述】:
我在我的项目中使用 Elsa 工作流程。 但是当我尝试发送和保存修改后的工作流或发布工作流时,我收到了这个错误:
Error occurred: Request with status code 400 failed
因为我在启动时使用了这段代码:
var builder = services.AddControllersWithViews(options =>
{
options.Filters.Add(typeof(AutoValidateAntiforgeryTokenAttribute));
options.Filters.Add(typeof(AntiforgeryCookieResultFilterAttribute));
options.ModelBinderProviders.Insert(0, new ServiceEndpointModelBinderProvider());
options.Conventions.Add(new ServiceEndpointActionModelConvention());
}).AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
如果我屏蔽了这两行:
options.Filters.Add(typeof(AutoValidateAntiforgeryTokenAttribute));
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
我的项目会运作良好
【问题讨论】:
-
您已标记此datacontractserializer,但
AddNewtonsoftJson启用了json.net 序列化程序,因此我将继续更新标签。 -
如果您只删除
options.Filters.Add(typeof(AutoValidateAntiforgeryTokenAttribute));或仅删除options.SerializerSettings.ContractResolver = new DefaultContractResolver();会发生什么情况,这能解决您的问题吗?还是必须同时删除它们? -
我的项目使用了这两个,如果我删除它们,项目的其他部分将无法正常工作
-
但是在你写的问题中,我屏蔽了这两行......我的项目会运行良好,所以我有点困惑。您能否澄清一下是否必须删除这两行才能解决
Error occurred: Request with status code 400 failed错误,或者仅删除其中一个就足够了?另外,你用的是什么asp.net版本?
标签: c# json.net .net-5 antiforgerytoken elsa-workflows