【发布时间】:2019-08-15 21:43:25
【问题描述】:
我正在尝试构建一堆用 .NET Core 2.1 编写的有状态微服务。这些不是 ASP.NET 应用程序,没有 http 接口,而是设计为从服务总线消费消息的控制台应用程序。
我有一段时间试图弄清楚如何将我的 appsettings.json 文件引用到服务包中。有很多文章与在 ASP.NET 服务结构应用程序中使用 appsettings.json 文件相关(基本上是在 webhost builder 中拼写出来),但这不适用于我,因为我没有使用 ASP.NET。
我有一个 appsettings.json 文件,该应用程序中的所有微服务都应该能够使用它。
我还发现这篇文章Service Fabric include additional files 谈到将其放入 MSBuild 的 sfproj 目标中,但似乎没有任何关于目标端文件结构的信息。
我尝试将目标添加到我的 sfproj 文件中,如下所示:
<Target Name="AfterPackage" AfterTargets="Package">
<Copy SourceFiles="appsettings.json" DestinationFolder="$(PackageLocation)\appsettings.json" />
</Target>
然后在我的服务中,我会尝试基于 ..\appsettings.json 实例化一个 IConfiguration 对象,但正如人们现在可能猜到的那样,该服务在尝试发布时会抛出 FileNotFoundException 来查找 appsettings.json文件,因此很明显该文件相对于微服务位于不同的位置。 (当然,发布失败只是说有问题并回滚,您必须深入SF Explorer才能真正看到该消息)
这个配置应该是什么样的?我找不到任何描述有状态微服务的文件系统是什么样子的文档,我不清楚我应该把这个公共文件放在哪里,或者服务应该如何访问文件。一些帮助将不胜感激。
【问题讨论】:
-
这个
appsettings.json是位于某个共享文件夹中还是直接包含在项目中? -
现在,为了让这个东西正常工作,我把它放到每个服务项目的 Data 文件夹中......但我真的希望它在 Application 项目中作为共享位置。
标签: azure .net-core azure-service-fabric