ASP.NET核心WebAPI 500 IIS 7.5中的内部错误

我很难让这个WebAPI工作。 好吧,使用IIS。 在IIS express中一切正常,但是当我发布它时,特别是1 api请求不起作用。 我正在尝试访问API/[Controller]/{date}/{integer}的URL。 我一直收到500服务器错误。 我的API/[Controller]/{date}其他路线有效。

这是我的API控制器:

 [Route("api/[controller]")] public class PostingsController : Controller { // GET: api/Postings/5 [HttpGet("{date}")] public string Get(string date) { return date; } // GET api/Postings/20160407/2 [HttpGet("{date}/{modeID}")] public List Get(string date, int modeID) { TruckPosting tp = new TruckPosting(); List truckPostings = tp.GetTruckPostings(date, modeID); return truckPostings; } } 

原因可能是我正在尝试返回List ? 考虑到它在VS的IIS Express中运行良好,我很难过。

编辑

这是我的startup.cs页面:

 public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure1(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.UseIISPlatformHandler(); app.UseDefaultFiles(); app.UseStaticFiles(); app.UseFileServer(true); app.UseMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.Map("/appRoot", (app1) => this.Configure1(app1, env, loggerFactory)); } 

这是一个很好的想法,你可能会返回一个List。 我们有工作的Core Web API方法,所有这些方法都返回Task> 。 尝试将返回类型List更改为Task>

编辑:要查看500(内部服务器)错误的详细信息,您需要将以下代码行放在Configure(或Configure1)方法的开头:

 app.UseDeveloperExceptionPage(); 

显然,这不是你想要的生产环境。

EDIT2:在VS中运行时,只要“属性”的“调试”部分中的“主机:环境”变量设置为“开发”,就可以使用下面的代码显示exception详细信息。 发布后,您需要创建一个名为ASPNET_ENV的系统环境变量,并将其值设置为“Development”,否则代码将不会调用UseDeveloperExceptionPage()方法。

 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } 

我今天在GitHub上发布了一个ASP.NET Core自定义exception处理程序。 我认为它可能对您有所帮助,因为您正在构建SPA并且可能正在调用很多Web API方法。

这是一个中间件项目,它返回Web API调用的错误消息,并重定向到非Web API调用的错误页面。 它还可以记录SQL Server数据库中的exception。 这是在一个单独的线程中完成的,以帮助提高性能。

该解决方案包括一个演示应用程序,该应用程序演示如何对Web APIexception和非Web APIexception使用exception处理程序。

这是链接。
https://github.com/ClintBailiff/CustomExceptionHandler

如果您最终查看并提出一些建议或意见,我希望听到他们的意见。