我有使用asp.net core 2.1运行的SPA Angular 6应用程序。出乎意料的是,对api控制器的http请求将永远不会得到答复。当我在浏览器调试中查看时,该请求显示为“待处理”。所以我添加了一些中间件:
public static void UseRequestLogger(this IApplicationBuilder app) {
app.Use(async (context, next) =>
{
var logger = context.RequestServices.GetService<ILogger<MyLoggerService>>();
var id = Guid.NewGuid();
logger.LogDebug($"starting request: {context.Request.Path}-{id}");
await next();
logger.LogDebug($"ending request: {context.Request.Path}-{id}");
});
}
然后我在StartUp.cs的app.UseRequestLogger()
方法顶部调用Configure
。当我的请求停留在浏览器中的“待处理”状态时,我注意到中间件从未处理过。我有点不知所措。如果中间件没有受到攻击,那之前发生了什么,我该如何检查?
答案 0 :(得分:0)
对我来说相同的配置和相同的不可预测的行为。
除非使用IIS + FireFox中托管的API(仅在此处使用Chrome进行调试),或API自行托管(通过launchSettings.json)进行调试。
{
...
"profiles": {
"YourProjectName": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:10001"
},
"IIS": {
"commandName": "IIS",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
...
}
我的建议是调试应用程序与自托管api之间的通信。 然后在生产中,您可以将API托管在IIS下,根据我的经验,它从未在发布模式下引起问题。