问题标签 [asp-net-core-spa-services]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
84 浏览

angular - ASP.NET Core 5 Angular 模板 401 刷新

我有一个使用 Angular 模板的 ASP.NET Core 应用程序,自从我从 .NET Core 3.1 升级到 5 后,当用户刷新浏览器时,该应用程序开始返回错误 401。

如果路由名称与 API 中的控制器名称匹配,例如路由:localhost/produts 和控制器 ProductsController,则会发生错误。

如果用户从 Angular 应用程序内部导航到 localhost/products,它可以工作,因为它是由 Angular 路由器处理的,但是如果在地址栏中输入 url,或者如果用户在路由上刷新浏览器,那么我会得到 401我相信这是因为 ASP.NET Core 应用程序正在解释路由。

以前发生的情况是 ASP.NET Core 应用程序会从 Angular 应用程序返回 index.html,从而在用户的浏览器上重新加载应用程序。

重现步骤:

  1. 在 Visual Studio 上,创建一个新的“ASP.NET Core With Angular”项目并选择 .NET 5 作为目标框架;
  2. 修改生成的 Angular 应用,将路由 'fetch-data' 更改为 'weatherforecast'。您必须修改以下文件:app.module.ts 和 nav-menu.component.html;
  3. 开始调试,导航到 Fetch-Data,然后按 F5;

我不太明白为什么这种行为发生了变化。有任何想法吗?

0 投票
2 回答
19 浏览

model-view-controller - knockout.js viewModel 不显示从控制器检索到的 json

我使用 $.getJson 将 json 对象检索到我的视图模型和应用绑定中。它不会显示 foreach 中的数据绑定。[代码] - index.cshtml

我在调试时检查了一个填充对象。我也尝试过使用 Json(machineList) 但这会出现一个对话框来下载 json 然后终止。

0 投票
1 回答
239 浏览

c# - AspNetCore React 只能在 dev 模式下查找 spa 文件

我的 AspNetCore/React 项目在开发环境中运行良好,但只要我在任何其他环境中运行它,我就会得到System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.

startup.cs 配置方法的结尾是这样的

但由于这与应用程序中的相应代码相同,因此dotnet new react我想其他的东西会扰乱它。

网络服务器确实启动了,我可以访问 Swagger 页面。只是找不到合适的应用程序。破解上面的代码以便spa.UseReactDevelopmentServer(npmScript: "start");运行会导致在所有环境中找到应用程序(加载环境特定的配置),但由 React 开发服务器提供服务。

我会这条线

是什么决定了/index.html和朋友的发现,但有些东西阻止了他们被发现。

我还应该看什么?

我已经看到了这个SPA 默认页面中间件无法返回默认页面,但我认为这不是我面临的问题。

对该项目的搜索显示只有一个文件index.html,它位于ClientApp/public. Configure 方法是这样开始的

0 投票
0 回答
233 浏览

node.js - 无法使用 docker 部署新的 aspnetcore .net5 react 项目

我对 docker 很陌生,并且花了很多时间试图解决这个问题。我无法将我的 aspnetcore react docker 映像部署到 docker。我已经成功部署了许多 aspnetcore 映像,但是当涉及到 SPA 时,我似乎无法弄清楚。我开始了一个新的 .net5 react 项目来测试 docker 文件。我为构建创建了一个 docker-compose 文件。每次我收到以下错误。任何帮助将不胜感激。

该项目称为 dockerSPA - 我专门为测试目的创建了它。请让我知道我是否可以提供其他信息来解决此问题

Dockerfile

package.json 脚本

码头工人-compose.yml

使用 'docker-compose up' 后出现完整的 docker 错误

编辑

通过遵循微软的旧 .net3 建议并进行一些小更新,我终于设法通过安装 nodejs 来部署 react spa 客户端。现在我的 nodejs 服务立即退出,代码为 0;

码头工人文件

错误:

有些东西告诉我我需要设置 redis 来处理这些问题,但我可能是错的。

0 投票
2 回答
3186 浏览

asp.net - 使用没有 SPA 代理的 ASP.Net Core React.js 模板

在 VS2019 Preview 中,您有多个模板。我对以下两个感兴趣: 在此处输入图像描述

我和两者都玩了一下,我观察到了不同。在ASP.NET Core with React.js模板中,启动了一个 SPA 代理服务器,而在ASP.NET Core with React.js and Redux没有它的情况下简单地工作(第二个模板在 TS 中,而不是 JS 中)。

我的意思是simply works without that。我查看了这两个.csproj文件,发现了一个差异(我只会附上值得注意的差异):

第一个模板:

第二个模板:

请注意,在第二个模板Microsoft.AspNetCore.SpaServices.Extensions中使用而不是Microsoft.AspNetCore.SpaProxy.

文件中也存在一些差异Startup.cs。第二个模板使用了一些额外的中间件

我还观察到,在 JSClientApp中有一个setupProxy.js文件,而在 TSClientApp中没有。该npm start命令也设置为"start": "rimraf ./build && react-scripts start",在 TS 文件中它只是react-scripts start.

我试图进行必要的调整来运行 TS 应用程序这样的 JS 应用程序,但我认为我遇到了一个问题,因此我遗漏了一些东西:

System.Net.Http.HttpRequestException:无法将请求代理到 http://localhost:61105/,因为对代理目标的请求失败。检查代理目标服务器是否正在运行并接受对 http://localhost:61105/ 的请求。

虽然这个错误确实有意义,但我不知道 TS 模板在哪里以及如何启动这样的代理服务器(如果有的话)。

我的问题是:我可以在JS模板中获取TS模板的行为吗?如果是,如何?如果不是,为什么?

0 投票
1 回答
228 浏览

javascript - 当用户在 Blazor Webassembly 身份验证和授权中具有多个角色时出现问题?

我有一个 Blazor Webassembly 解决方案,当我使用用户(具有多个角色)登录时,登录操作显示错误:

按照我的自定义身份验证提供程序

启动.cs

问题似乎是一个身份存在多个角色。
如果身份只有一个角色,则不会出现问题。

0 投票
1 回答
110 浏览

asp.net-core - SPA 默认页面中间件无法返回默认页面 - asp net core 5 and webpack dev server

我很难SpaProxyingExtensions.UseProxyToSpaDevelopmentServer使用webpack-dev-server,但找不到合适的配置。

我在控制台中遇到的错误

System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.

我将设置与以下 SO 答案进行了比较,没有任何显着差异。

打包过程并不复杂,webpack 会将内容转储到wwwroot/dist文件夹中。

我在这里想念什么?

感谢帮助。

文件夹结构 在此处输入图像描述

包.json

webpack.config.js

csproj

启动设置.json

启动.cs

0 投票
1 回答
196 浏览

c# - ASP.Net Core React.js 模板 Azure AD 身份验证和授权

我已经Startup.cs按照这些文档设置了我的。

问题是我的 SPA 位于,https://localhost:5000我的 API 位于https://localhost:5000/api. 当我访问 SPA URL 时出现一些错误,但如果我转到 API URL,则会被重定向到https://login.microsoftonline.com/...rest可以执行登录的位置。在那之后,我得到了一个 cookie 集,然后我的 SPA 应用程序就可以工作了。

我的问题如下,如何随意访问登录/注销功能。从这些文档中,我看到有一个可以访问的 Account 控制器。但是我尝试通过“猜测” URL 来导航到它,但我没有设法这样做。

我看到可以通过定义一些 Razor 页面来访问控制器的功能,例如:

我如何从 React 中做到这一点?我不确定我是否遵循了适当的文档。

0 投票
0 回答
53 浏览

asp-net-core-spa-services - ASP.NET Core 请求处理中 Kestrel 服务器与 Program.cs 的关系

我正在研究 ASP.NET Core 中 HTTP 请求的处理。从图像中的 Kestrel 向 main() 发送请求。我知道ASP.NET Core核心应用程序加载构建完成后,main()会执行一次,并监听应用程序的HTTP请求。那么Kestrel、Program.cs和Startup.cs是什么关系呢?你觉得这张照片对吗?因为 main() 不适用于每个请求。main() 和 startup.cs 应该在图中的什么位置?

暴露 main() 和 Configure() 方法 ınsıde "AppCode" 不是更好吗?

ASP.NET Core 请求处理

0 投票
0 回答
39 浏览

.net - 带有react spa的.net核心为获取请求提供405,而不是回退到spa,因为发布路线

我正在开发一个带有 spa 前端的 .net 核心 oAuth 控制器。

上有邮递路线[HttpPost("~/connect/logout"), ValidateAntiForgeryToken]。我希望这个 url 的 get 路由回退到 spa 应用程序。当前,.net 给出了不允许的 405 方法,如果同一路由有 post 方法。

如何制定回退到水疗服务的获取路线?

我试过添加endpoints.MapFallbackToFile("/index.html");,但这给出了 404。

启动.cs