Asp.Net Core 2.1 Angular应用无法回答请求

时间:2018-10-18 18:53:43

标签: asp.net-core

我有使用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。当我的请求停留在浏览器中的“待处理”状态时,我注意到中间件从未处理过。我有点不知所措。如果中间件没有受到攻击,那之前发生了什么,我该如何检查?

1 个答案:

答案 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下,根据我的经验,它从未在发布模式下引起问题。