我很愁如何让WebAPI与IIS协同工作。在IIS Express中一切正常,但发布到服务器后,特别是其中1个API请求无法正常工作。我试图访问
这是我的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<TruckPosting> Get(string date, int modeID)
{
TruckPosting tp = new TruckPosting();
List<TruckPosting> 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));
}
eventvwr.msc
),而不是 IIS 日志,对吧?另一件事是在你的 web.config 中更改<customErrors mode="Off"/>
,然后使用浏览器访问 API,看看是否会出现带有更多详细信息的黄色屏幕错误。 - CodingGorilla