在IIS服务器上部署不依赖nodejs的asp.net React模板

2024-04-05

我在没有 Nodejs 的 IIS 服务器上部署和运行 ReactRedux 模板时遇到问题。该应用程序是使用 AspNetCore.SpaTemplates 的“reactredux”选项创建的:https://blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-applications-on-asp-net-core-with-javascriptservices/ https://blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-applications-on-asp-net-core-with-javascriptservices/

该应用程序与模板相同,没有进行任何更改。我们首先尝试将其托管在 IIS 上,并在 IIS 服务器上安装了 Nodejs,一切正常:

用nodejs截图 https://i.stack.imgur.com/5dTZu.png

但是当我们从服务器上卸载 Node js 并重新启动 IIS 时,它就不再工作了:

没有nodejs的截图 https://i.stack.imgur.com/nRAHf.png

我们无法弄清楚错误是什么,因为在开发模式下运行它需要nodejs,而当我们使用dotnet run在开发模式下,错误消息抱怨 Node.js 未按预期安装。

我们尝试部署运行的应用程序:

$Env:ASPNETCORE_ENVIRONMENT = "Production"    
dotnet publish -c Release

并使用 Visual Studiobuild>publish界面。

根据此处的文档,应用程序在部署用于生产时不需要 Nodejs:

https://learn.microsoft.com/en-us/aspnet/core/spa/react?tabs=visual-studio https://learn.microsoft.com/en-us/aspnet/core/spa/react?tabs=visual-studio

与开发构建不同,生产构建不需要 要在服务器上安装 Node.js。

我是 ASP.NET 和在 IIS 上部署应用程序的新手,也许解决方案很简单,但我们无法解决这个问题,提前致谢。


如果您不需要任何 Nodejs 依赖项,请确保禁用服务器端预渲染:https://github.com/aspnet/JavaScriptServices/issues/932 https://github.com/aspnet/JavaScriptServices/issues/932

如果您不进行服务器端预渲染,那么您将不需要 Node.js 在你的生产服务器上,因为所有的 JS 都会被执行 在客户端。

如果您正在进行服务器端预渲染(这是默认的 在此存储库中的 React-Redux 模板),那么您确实需要 Node.js 生产服务器,因为预渲染过程涉及执行 服务器上的 JavaScript 代码。

要禁用服务器端预渲染,请执行以下操作:

  1. Remove asp-prerender-module="ClientApp/dist/main-server" from Views>Home>Index.cshtml
  2. Remove @addtaghelper "*, Microsoft.AspNetCore.SpaServices" from Views/_ViewImports.cshtml
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在IIS服务器上部署不依赖nodejs的asp.net React模板 的相关文章

  • 如何在托管的 VSO 构建代理中设置 Node.js 和 NPM 版本号?

    在 Visual Studio Online 中 您现在可以在生成定义的 常规 选项卡上设置生成依赖项 但是 有没有办法设置Node js和NPM的版本 托管构建代理当前似乎正在使用 Node js v0 12 7 和 NPM v2 11
  • 使用 redux-thunk 取消之前的异步操作

    我正在使用 redux thunk 中间件构建一个 React Redux 应用程序来创建和处理 Ajax 请求 我有一个经常触发的特定 thunk 我想在触发新请求之前取消任何先前启动的 Ajax 请求 这可能吗 一种方法是通过为这些请求
  • 在 RowDataBound 中设置 OnClientClick 后事件未触发

    我有一个 Asp net GridView 用数据绑定填充 我的专栏之一是 ButtonField 显然有他自己的 CommandName The GridView行命令工作完美 但如果我添加一个GridView RowDataBound
  • Angular 2 http post + Nodejs Express

    我无法在服务器上获取帖子参数 我将 Angular 2 应用程序中的 post 请求发送到 Nodejs Express 服务器 这是我在 Angular 2 中的代码 import Injectable from angular2 cor
  • 如何使用 Node/Express 后端的 Angular 5 HttpClient get 方法下载 excel (xlsx) 文件?

    我的 Nodejs 服务器上的目录中有一个 excel 文件 文件的路径是 api uploads appsecuritydesign output appsecdesign xlsx 单击 Angular 5 组件中的按钮后 我只是尝试使
  • 如何在 Node CLI 程序中使用 babel?

    我正在 Node 中编写一个小型 CLI 工具 并希望使用 ES6 来实现 index js 看起来像 usr bin env node require babel register module exports require app 我
  • 如何使用 Jest 模拟 AWS Cognito CognitoIdentityServiceProvider?

    我正在尝试编写单元测试 我需要模拟来自认知服务的方法的响应 Cognito身份服务提供商 https docs aws amazon com AWSJavaScriptSDK latest AWS CognitoIdentityServic
  • 如何在测试用例失败时在量角器中截取屏幕截图

    我是量角器的新手 想在浏览器中截取失败的测试用例的屏幕截图 您能帮我建议一下我该怎么做吗 谢谢 您可以使用protractor jasmine2 screenshot reporter为此 它有一些很好的功能可以满足您的目的 var Htm
  • 使用位图的保存方法覆盖图像

    我有一个 ASP NET C 页面 我正在其中调整文件夹中图像的大小 我正在使用 GDI 来执行此操作 我想调整图像大小并替换为旧图像 因此 当我尝试使用现有名称保存时 Save 方法会抛出错误 但如果我给出不同的名称 它就会被保存 但我希
  • 在反应中将索引从一个函数传递到另一个函数

    我有一个项目列表 单击删除按钮后该项目将被删除 我知道执行此操作的步骤 但我不知道如何将密钥传递到 dlt item 范围 http jsfiddle net 3Ley7uac 1 http jsfiddle net 3Ley7uac 1
  • NHibernate 会话线程安全

    我已经使用 NHibernate 一段时间了 并且不时发现如果我尝试同时请求两个页面 或尽可能接近 偶尔会出错 所以我认为这是因为我的会话管理不是线程安全的 我以为这是我的课 所以我尝试使用与这篇博客文章不同的方法http pwigle w
  • Gatsby 在 graphql 查询返回后获取图像路径

    所以我用 Gatsby 和 Remark 写了一个博客网站 我的帖子结构如下 Library category name article name index md 这非常有效 使我能够制作类似的路径 category name artic
  • PutAsync 不会向 Web api 发送请求,但 fiddler 工作正常

    几个小时以来我一直在试图找出问题所在 但我就是找不到问题所在 通过 Mvc 应用程序 put 方法不会被命中 请求不会发生 但是当我在 fiddler 中测试它时 api 中的 PutMethod 可以工作 希望有人能为我解决问题 也欢迎提
  • TSConfig JSX:React JSX 与 React

    在将 Typescript 与 React 一起使用时 我们必须指定jsx in compilerOptions in tsconfig json file It has preserve react react native react
  • Microsoft Graph API 授权错误:无效受众

    我知道这是一个很长的问题 但如果有人能与我分享他们的想法或经验 我真的很感激 因为我已经解决这个问题几天了 现在正在尝试很多事情 我有一个 ASP Net Core 3 1 Web API 应用程序和一个 ASP NET Core 3 1
  • 在运行时配置 ASP.NET 会话状态

    我们有一个使用 SQL Server 会话状态的 ASP NET 网站 状态配置在Web config like
  • 实体框架..自引用表..获取深度=x的记录?

    我成功地在实体框架中使用自引用表 但我不知道如何获得所需深度的记录 这应该是什么逻辑 Model public class FamilyLabel public FamilyLabel this Children new Collectio
  • FireFox 中的默认表单按钮

    我正在构建一个服务器控件 它将搜索我们的数据库并返回结果 服务器控件包含一个 ASP Panel 我已将面板上的默认按钮设置为等于我的按钮 id 并将表单默认按钮设置为等于我的按钮 id 在面板上 MyPanel DefaultButton
  • 推荐的增长缓冲区的方法?

    假设我正在 Node js 中构造一个可变长度的字符串或一系列字节 buf write 的文档说 https nodejs org api buffer html buffer buf write string offset length
  • asp.net 保护图像免受其他用户的静态请求?

    我在一个为每个特定用户生成动态图像的网站上工作 有时这些图像包含非常敏感数据的描述 最近 我们开始看到对属于不同用户的图像的请求 其形式为 http myapp images someuid image1 jpg http myapp im

随机推荐