遇到一个奇怪的问题,.net core mvc 项目部署到nginx上面,系统是linux,controller明明抛出500错误,但页面一直显示是404.
解决如下:
1.修改Startup.cs,由于发布到生产环境,使用错误页面/Home/Error,但错误页面又不存在,出现404错误。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else {//app.UseExceptionHandler("/Home/Error"); app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } }
2.修改nginx的配置,把404与500的错误页面注释掉,nginx不进行处理,这样错误就会显示调试时的错误信息。
# error_page 404 /404.html; # location = /40x.html { # } #error_page 500 502 503 504 /50x.html; # location = /50x.html { # }