我正在设置.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
生成它之后,我并没有改变任何东西。
基本上,我只是想知道这种行为是预期的还是做错了什么。
以下是该警告和网络阅读的一些屏幕截图:
警告:
答案 0 :(得分:0)
当我调用一个从服务的构造函数返回承诺的函数时,发生了我的事。该函数调用包含一个api get-request。删除函数调用后,xhr_streaming不再是永无止境的请求。