【问题标题】:Error in Angular app running on .NET Core in Service Fabric在 Service Fabric 的 .NET Core 上运行的 Angular 应用出错
【发布时间】:2019-04-17 12:32:18
【问题描述】:

我创建了一个新的服务结构应用程序,添加了一个无状态的 .NET Core 服务 (.NET Core 2.1) 并选择了 angular 模板。它构建得很好,一切看起来都很好,但是当我运行它时,我得到了这个错误:

Startup.cs 包含一行 spa.UseAngularCliServer(npmScript: "start");,它仅用于开发,如果我删除此行,我将不再收到此错误,但它不会获取我对代码的任何更改。

我尝试更新我的 npm、node、angular cli 版本,将项目更新为 angular 7(默认为 5),但没有成功。

如果我直接在 ClientApp 文件夹中运行 ng serve,它运行正常,所以问题似乎与它托管在 .NET Core 或 SF 中有关。

这似乎与 SF 服务没有权限在 system32 下创建/编辑文件/文件夹有关?

【问题讨论】:

  • 能否在服务器上手动创建文件夹c:\\windows\\system32\\config\\systemprofile\\appdata\\roaming\\npm?从您自己的配置文件中复制npm 文件夹:c:\\users\\<you>\\appdata\\roaming\\npm。你可能是对的,因为它在开发配置中,它试图创建一个文件夹,因为它不存在使用运行服务的帐户。或者,尝试提升权限的帐户,该帐户确实具有权限
  • @pixelbits 我确实尝试手动创建 npm 文件夹,然后我得到了基本相同的错误,但抱怨它已经存在!我没想过要复制我的,所以我会试一试。我的用户帐户是管理员,有没有办法以提升的权限运行 SF?
  • 不确定 SF,但您需要知道服务帐户(您是否在 IIS 下运行,然后它的 AppPool 身份?),以便您可以授予它对该文件夹的正确权限
  • @pixelbits 我想你让我走上了正确的道路,现在找到了解决方案,谢谢

标签: c# angular .net-core angular-cli azure-service-fabric


【解决方案1】:

怀疑这与 SF 无权修改该文件夹有关。 Service Fabric 在用户 NETWORK SERVICE 下运行。

我找到了两种解决方法:

1.手动授予网络服务权限

我导航到 C:\Windows\System32\config\systemprofile\AppData\Roaming 并编辑了该文件夹中的权限,以授予用户 NETWORK SERVICE 读/写权限

2。编辑 ApplicationManifest.xml 以授予 SF 管理员权限

通过添加

<Principals>
  <Users>
    <User Name="LocalAdmin" AccountType="NetworkService">
      <MemberOf>
        <SystemGroup Name="Administrators" />
      </MemberOf>
    </User>
  </Users>
</Principals>
<Policies>
  <DefaultRunAsPolicy UserRef="LocalAdmin" />
</Policies>

其中任何一个似乎都可以正常工作。最好的部分是它最终所做的就是在那里创建一个空的npm 文件夹。

【讨论】:

  • 为什么不作为静态文件运行呢?或者,也许您可​​以将 NodeJs 托管为来宾可执行文件!
猜你喜欢
  • 2017-06-08
  • 2018-11-18
  • 2016-09-18
  • 2016-12-08
  • 2019-04-07
  • 2023-04-06
  • 2016-12-13
  • 2016-09-21
  • 2017-03-25
相关资源
最近更新 更多