.NET Core 2.2 + Angular 7“ xhr_streaming”永无止境

时间:2019-05-26 06:33:19

标签: angular websocket .net-core single-page-application sockjs

我正在设置.NET Core Web API后端,并为前端使用Angular 7 SPA。我正在使用Microsoft的SpaServices和StaticFiles包将两个链接在一个项目下。

当我运行Web应用程序时,控制台选项卡显示sockjs WebSocket警告,而网络选项卡显示来自sockjs的名为“ xhr_streaming”的内容,并永远保持打开状态。

这种行为正常吗?还是我没有正确设置/配置某些东西?

除了使用Rider生成Web API和使用Angular CLI生成Angular 7应用程序外,我对项目没有做任何事情。我似乎在网上找不到与此问题有很大关系,但是可能我没有正确搜索。

这是我在Web API中的启动方式。我仅将其重点放在将其与Angular链接上的配置上。

public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            // Rest of ConfigureServices are unrelated

            services.AddSpaStaticFiles(configuration =>
            {
                // RootPath = "ClientApp/dist"
                configuration.RootPath = serviceProvider.GetService<IOptions<SpaConfig>>().Value.RootPath;
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            // Rest of Configure is irrelevant

            app.UseStaticFiles();
            app.UseSpaStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    "default",
                    "{controller}/{action}/{id?}");
            });

            app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer("start");
                }
            });
        }
    }

从Angular的角度来看,确实没有什么可以显示的,因为在我用ng new生成它之后,我并没有改变任何东西。

基本上,我只是想知道这种行为是预期的还是做错了什么。

以下是该警告和网络阅读的一些屏幕截图: Network reading

警告: Warning

1 个答案:

答案 0 :(得分:0)

当我调用一个从服务的构造函数返回承诺的函数时,发生了我的事。该函数调用包含一个api get-request。删除函数调用后,xhr_streaming不再是永无止境的请求。