问题标签 [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 投票
1 回答
815 浏览

angular - 如何从 OkObjectResult 获取价值并从 Angular6 订阅?

这是一个快速的问题给你们!

我得到了一个 IActionResult,它返回一个带有 Ok 结果的整数。

我得到了发布 PageEditModel 的 Angular 方法:

我想从结果中获取整数。整数不在结果中。

在此处输入图像描述

你知道为什么我不能从结果中看到 id 吗?

谢谢

0 投票
0 回答
475 浏览

asp.net - 使用具有 ASPX 页面和站点托管在 IIS7 上的 VUEJS 寻找服务器端渲染

我们在 ASPX 中有我们现有的页面,并且站点托管在 IIS7 服务器上。我们正在寻找在 VUEJS 2.0 中改进/设计页面。

通过生成 build.js(生产)并在 ASPX 页面上引用相同的内容,我们能够将 VueJS 代码与现有的 ASPX 页面集成,并且页面将具有 Target 元素。这都是客户端渲染。现在,我们希望在 SSR 中也一样。这意味着在提供给客户端(浏览器)之前在页面上呈现完整的 HTML 代码。

这清楚地表明我们需要设置 NodeServer,它可以被 ASP.NET 调用以在将 VUEJS 代码提供给客户端(浏览器)之前将其渲染并添加到 ASPX 页面上。如果我错了,请纠正我。在这里,我们正在寻找一个动态网页(不是带有预渲染或静态生成的静态网页)

我们已经开始寻找 NUXT.JS 作为选项之一。但这建议用于为 NodeServer 托管的应用程序。

参考:https ://github.com/MarkPieszak/aspnetcore-Vue-starter/issues/67 1https ://github.com/MarkPieszak/aspnetcore-Vue-starter/issues/67

Nuxt 面临的另一个重大挑战是,他们可能会推出 Nuxt2.js 版本,该版本可能有也可能没有重大变化。https://medium.com/nuxt/nuxt-2-is-coming-oh-yeah-212c1a9e1a67

下一个选项是寻找以下内容:

上面的链接提到使用 ASP.net 核心 API Microsoft.AspNetCore.SpaServices.Webpack。

我相信您一定遇到过这种情况并找到了最佳解决方案。我正在寻找退伍军人的建议,已经达到了同样的效果,应该遵循什么路径?如果这可以实现吗?我应该期待哪些挑战?

谢谢

0 投票
1 回答
734 浏览

angular - 如何设置中间件以在 asp.net 核心 MVC 应用程序中并排运行反应和角度应用程序?

我在同一个asp.net core 2.1 app中有一个angular & react 应用程序(clientapp1 和 clientapp2)。我可以在它的文件夹clientapp1clientapp2中运行应用程序。他们在自己的端口中运行并且工作正常。

我添加了以下代码来分支路径。我希望 angular 应用程序在我使用端点http://localhost:5000/clientapp1时运行,并在我运行时运行 react 应用程序http://localhost:5000/clientapp2

dotnet run在应用程序根文件夹中运行命令时,asp.net 核心应用程序不起作用。我收到以下错误。错误说它在http://localhost:5000/文件夹中查找文件。

角度:

在此处输入图像描述

反应:

在此处输入图像描述

我必须设置什么配置来告诉两个应用程序在哪里查找文件。

如果我将代码更改clientapp1.UseSpa(spa =>app.UseSpa(spa =>. 但副作用是http://localhost:5000/clientapp2不起作用。

0 投票
2 回答
2045 浏览

c# - 如何在现有 MVC 应用程序中在特定路径启用 Spa 中间件

默认情况下,SPA 在站点根目录上启用。但是,我想将其移至特定路径,例如:http://localhost:port/frontend

当我在 /frontend 文件夹中运行 npm build 时,这将起作用,但是我在配置 UseProxyToSpaDevelopmentServer 时遇到了麻烦。它显示 index.html,但引用

http://localhost:port/vendor.js代替http://localhost:port/frontend/vendor.js

当我使用ng serve --base-href=/vnext/

对 localhost:port/frontend/vendor.js 的请求返回 index.html 的内容。

0 投票
0 回答
459 浏览

azure - 本地服务器上的运行应用程序在 Azure 上失败

我有一个 Angular Web 应用程序,其 API 在我的本地服务器上运行良好(以及,与任何正在开发的应用程序功能一样完美),但是当我将它及其关联的数据库迁移到 Azure 上的应用程序服务时,每个 /api 调用都会失败500。

因此,我认为问题出在数据库上,我将本地开发服务器上的连接字符串更改为指向 Azure 数据库。我通过这种方式发现了一个小问题,我在连接字符串中拼错了用户名。所以我修复了这个问题,它在访问 Azure 数据库时在我的本地服务器上完美运行,但是一旦我使用相同的连接字符串在 Azure App Service 上运行它,每次调用 /api 都会失败,并出现内部服务器错误 500。

所有常规页面都得到了完美的服务,并且 Angular 路由工作得很好。仅从数据库访问内容失败。我已经在这几天了,不知道下一步该做什么。欢迎任何建议。

我正在使用 OpenIddict 进行身份验证,因此我对其进行了标记,但无论如何我都看不到相关的内容。奇怪的是,这里有一个线索,对“/connect/token”的身份验证调用有效并返回一个有效的令牌,但“/api/...” URL 没有。

如果相关,我正在使用 Asp Net Core 2.1。

更多信息

我按照建议尝试了详细的日志,但它们几乎不详细。但我确实注意到了一件有趣的事情。在错误中有以下信息:

现在这个应用程序正在使用 MVC,所以没有这样的物理路径。控制器装饰有:

并且动作被装饰为:

在我看来,路线映射失败了。但这在我的本地开发计算机上运行良好。Azure 应用服务有什么不同?我需要在门户中设置一些特殊设置以允许 MVC 吗?我无法想象门户为什么要关心这些事情。

更多信息

使用 Postman,如果我使用有效的 Bearer 令牌访问 /api/someValidUrl,我会收到 500 错误。如果我删除 Authorization 标头,则会返回 401。

我开始说我认为这与 OpenIddict 没有任何关系,但也许我错了。我的授权控制器只是创建令牌。所有的有效性检查都是由 OpenIddict 完成的。

一个巨大的线索

我添加了一个 ExceptionHandler,然后使用 Postman 发出 API 请求,并产生了以下异常:

我在这里找到了解释,但我并不完全理解,但看起来 Azure 上的 MS 中间件错误地试图将其解释为 Azure AD 请求。我唯一确定的是我的项目中没有名为 IdentityModelEventSource.cs 的文件。

供参考https://mywebsite.azurewebsites.net/.well-known/openid-configuration返回:

也许有了这些信息,有人可以为我指明正确的方向。

新的 Startup.cs

我接受了 Pinpoint 的建议并从 JWT 更改。新的启动如下:

现在问题是一个例外:

InvalidOperationException:未指定 authenticationScheme,也未找到 DefaultChallengeScheme。

0 投票
1 回答
434 浏览

c# - 使用 .netCore 2.0 的中间件手动验证 JWT 令牌

我需要使用 .netcore 的中间件来验证 JWT 令牌。我无法使用 .net 核心的内置功能来验证令牌,因为 JWT 令牌使用非对称密钥,因此共享公钥存在限制。我想在中间件中实现这个功能。能否请您告诉我,需要遵循哪些步骤?特别是,我想知道所有需要添加到启动类的东西?

谢谢吉里什

0 投票
1 回答
1357 浏览

swagger - Swagger UI 未呈现 :: AspNetCore

我想使用 NSwag.AspNetCore.11.18.7 来获得 API 文档...包已经安装并设置了必要的设置然后执行dotnet run ...当我导航到http://localhost:5000/swagger无法显示 API DOCS。控制台上的错误消息如下:

启动.cs

app.module.ts

0 投票
1 回答
529 浏览

sql-server - 应用程序超时 120 - 130 秒 aspnet mvc

我的应用程序在 120 t0 130 秒内超时,我尝试了以下操作。1. web.config 更改

  1. 添加了 sql 超时 EF Core

    command.CommandTimeout = 100;

  2. 在 IIS 上更改

    连接超时 900

  3. 在控制器上为 int.mex 值添加了 asynctimeout 属性

  4. 将 httpclient 连接超时添加到 4 分钟

我有两个应用程序 1. asp net web 调用 asp net cocre api

都托管在 IIS 上都具有相同的设置

0 投票
1 回答
322 浏览

reactjs - React + ASPNET Core + Prerendering:尝试以访问权限禁止的方式访问套接字

我有一个使用 aspnet-prerendering 的 .NET Core + React 应用程序。我使用dotnet new reactredux创建了该应用程序。我将它发布到 Azure,并使用 AWS CloudFront 路由到该应用程序。

该应用程序已在所有环境(本地、CI、prestaging...)中运行,但是当我将其部署到生产环境时,它运行了几天,然后我开始遇到很多An attempt was made to access a socket in a way forbidden by its access permissions错误。当对 POST 进行 POST 时,就会发生这种情况127.0.0.1:<randomPort>。我没有在我的代码中发布这个 POST,并且我被告知它与如何预渲染 react 有关。这些错误通常仅在部署后大约 1-2 天开始出现。因此,当我第一次部署时,一切看起来都很好,但是当错误开始时,它们会继续出现,直到我在 Azure 中重新部署或重新启动应用程序。


我尝试过的事情:

  • 重新启动应用程序可以暂时解决问题。
  • 听说这是react hot reloading造成的,所以我确定在Azure中添加了一个appsetting ASPNETCORE_ENVIRONMENT=Production:. 这并没有解决问题。
  • 我尝试完全注释掉 Startup.cs 的热重载部分以检查这个假设……但在部署该代码 2 天后错误仍然再次出现。

失败与成功的端口示例列表(看似随机......?):


代码片段:

启动:

索引.cshtml

包.json

注意:我有一个引导服务器和一个引导客户端,以及一个服务器 webpack 配置和一个客户端 webpack 配置。这是由于对服务器/客户端编译的不同需求。

引导服务器.js

引导客户端.js

Webpack.config.js

Webpack.config.server.js

我的问题是 - 为什么会发生这种情况?我该如何预防?

0 投票
3 回答
1204 浏览

angular - Angular 7 with .net core 2.1 - 为特定页面启动

我有一个 .NET Core 2.1 网站,Angular 7 位于 /ClientApp 中。

我正在使用 Microsoft.AspNetCore.SpaServices.Extensions

如果我转到一个页面,例如 localhost:5001/pagedoesnotexist/index,那么由于某种原因,Angular 应用程序会启动。

问题 - 如果我转到不存在的页面,如何更改配置以使 ASP.NET Core 不会尝试重定向到 Angular 应用程序?
我希望它在不正确的网络请求时简单地返回标准 404。我想要一个特定的页面,例如 /admin/dashboard 只为 Angular 应用程序提供服务

启动.cs

公共无效配置(IApplicationBuilder 应用程序,IHostingEnvironment env)

虽然这是我的第一个 Angular 应用程序,但到目前为止它似乎运行良好,问题出在开发环境中。

谢谢。

更新 1

进一步澄清一点:

通过:我想要 localhost:5001/ = 404

PASS:我希望 localhost:5001/angtastic/ 为应用程序提供服务

失败:我从 zone.js (socksjs-node/info) 得到重复的 info?t=[random numbers] (它可以在没有下面针对子文件夹的代码的情况下工作,所以也许我做错了什么)。我的猜测是套接字或与 webpack 相关的东西(在 angular cli 的引擎盖下)在处理此子文件夹中的应用程序时遇到了麻烦。

我有一个带有问题的部分解决方案:

此外,将 index.html 更改为 BaseURL 为 .

这是我的 Angular.json