Azure .NET Core 2服务结构控制台应用程序通用配置文件
我正试图构建一系列用.NETCore2.1编写的有状态微服务。这些不是ASP.NET应用程序,也没有http接口,而是设计为从服务总线上消费消息的控制台应用程序 我花了很长时间试图弄清楚如何将我的appsettings.json文件引用到服务包中。有很多文章都与在ASP.NET service fabric应用程序中使用appsettings.json文件有关(基本上在webhost builder中进行了详细说明),但这不适用于我,因为我没有使用ASP.NET 我有一个appsettings.json文件,该应用程序中的所有微服务都应该能够使用该文件 我还发现了这篇文章,其中讨论了如何将其放入MSBuild的sfproj目标中,但似乎没有关于目标端的文件结构的任何信息 我尝试将目标添加到我的sfproj文件中,如下所示:Azure .NET Core 2服务结构控制台应用程序通用配置文件,azure,.net-core,azure-service-fabric,Azure,.net Core,Azure Service Fabric,我正试图构建一系列用.NETCore2.1编写的有状态微服务。这些不是ASP.NET应用程序,也没有http接口,而是设计为从服务总线上消费消息的控制台应用程序 我花了很长时间试图弄清楚如何将我的appsettings.json文件引用到服务包中。有很多文章都与在ASP.NET service fabric应用程序中使用appsettings.json文件有关(基本上在webhost builder中进行了详细说明),但这不适用于我,因为我没有使用ASP.NET 我有一个appsettings.
<Target Name="AfterPackage" AfterTargets="Package">
<Copy SourceFiles="appsettings.json" DestinationFolder="$(PackageLocation)\appsettings.json" />
</Target>
然后在我的服务中,我会尝试基于。\appsettings.json
实例化一个IConfiguration
对象,但正如人们现在可能猜测的那样,该服务在尝试发布时抛出一个FileNotFoundException来查找appsettings.json文件,因此,很明显,相对于微服务,文件位于不同的位置。(当然,发布失败只是说出现了问题并回滚,您必须深入SF浏览器才能真正看到该消息)
这个配置应该是什么样的?我找不到任何描述有状态微服务的文件系统的文档,我不清楚应该把这个公共文件放在哪里,或者服务应该如何访问该文件。如果能帮上点忙,我们将不胜感激。我希望我一切顺利 以下是步骤:
appsettings.json
放入*.sfproj
中的共享文件夹,并使用Visual Studio将其包含在项目中*.sfproj
并开始将其编辑为.xml
元素之后添加下面的代码
\u DeployableServiceProjectReference
是由以前的目标初始化的内部
对于*.sfproj
中的每个服务引用,这些命令应强制package命令将appsettings.json
文件复制到服务的代码包目录
希望这有帮助。我希望我一切都好 以下是步骤:
appsettings.json
放入*.sfproj
中的共享文件夹,并使用Visual Studio将其包含在项目中*.sfproj
并开始将其编辑为.xml
元素之后添加下面的代码
\u DeployableServiceProjectReference
是由以前的目标初始化的内部
对于*.sfproj
中的每个服务引用,这些命令应强制package命令将appsettings.json
文件复制到服务的代码包目录
希望这有帮助。这是
appsettings.json
位于某个共享文件夹中还是直接包含在项目中?现在,为了让这件事正常工作,我将它放在每个服务项目的数据文件夹中。。。但我真的希望它作为一个共享位置出现在应用程序项目中。这个appsettings.json
是否位于某个共享文件夹中,或者它直接包含在项目中?现在,为了让它正常工作,我将它放在每个服务项目的一个数据文件夹中。。。但我真的希望它作为一个共享位置出现在应用程序项目中。
<Target Name="AfterPackage" AfterTargets="Package">
<Copy SourceFiles="appsettings.json"
DestinationFolder="$(PackageLocation)\%(_DeployableServiceProjectReference.ServiceManifestName)\%(_DeployableServiceProjectReference.CodePackageName)" />
</Target>