如何在IIS中使用.NetCore在开发模式下运行React?

时间:2019-06-05 19:42:52

标签: reactjs asp.net-core iis-10

我已经将Visual Studio模板用于.NetCore / React Web应用程序。默认情况下,它使用IIS Express在“开发”模式下运行。但是,如果我在IIS中设置了站点并启动了配置文件,则浏览器会出现错误:

  

AggregateException:发生一个或多个错误。 (一个或多个错误   发生。 (NPM脚本“开始”已退出,但未表明   create-react-app服务器正在侦听请求。错误输出   was:错误:EPERM:不允许操作,mkdir   'C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Roaming \ npm'

我的launchSettings.json具有IIS配置文件的以下内容:

"IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "http://localhost",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }

从该错误看来,这可能是一个权限问题,我需要在其下运行IIS应用程序池,但找不到任何文档可以告诉我有关此问题的信息。

我想念什么?同样,这是模板中未经修改的项目。如预期的那样,Startup.cs正在运行React:

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

   if (env.IsDevelopment())
      { spa.UseReactDevelopmentServer(npmScript: "start"); }
});

1 个答案:

答案 0 :(得分:0)

根据您的描述,建议您首先修改IIS默认应用程序池的标识,以确保它具有运行npm的权限。

我建议您可以按照以下步骤操作:

1。打开IIS管理控制台,找到应用程序池,找到默认应用程序池,然后单击高级设置。

enter image description here

  1. 找到身份设置并将内置帐户修改为本地系统

enter image description here

然后,我建议您可以在系统环境中添加npm路径。

  1. 转到“控制面板” \“系统和安全性” \“系统”并找到高级系统设置

enter image description here

2.Click环境变量

enter image description here

3。在系统变量中找到路径,并添加如下所示的npm路径:

C:\Users\{username}\AppData\Roaming\npm 

enter image description here