【发布时间】:2017-09-12 13:11:00
【问题描述】:
我有一个 ASP.NET Core 2.0 应用程序,我可以很好地使用用户机密。但是,我无法让它在 Azure WebJobs 应用程序或基本的 Windows 控制台应用程序(两者都是 .NET 4.6.1)中工作。我已经为 Microsoft.Extensions.Configuration.AddSecrets 添加了 nuget,并且 AddUserSecrets 方法在代码中编译得很好。
但是,我无法将用户密码添加到项目中。与 ASP.Net Core 2.0 应用程序一样,项目的右键上下文菜单上没有“管理用户机密”选项。所以我尝试从命令行使用 dotnet user-secrets(我已经在 ASP.NET Core 2.0 应用程序中成功使用过)。虽然我收到此错误,但它不起作用。
No executable found matching command "dotnet-user-secrets"
从阅读其他帖子看来,我需要 Microsoft.Extensions.SecretManager.Tools。我无法通过 nuget 添加它,因为我收到此错误:
所以我添加了:严重性代码描述项目文件行抑制状态 错误包“Microsoft.Extensions.SecretManager.Tools 2.0.0”具有项目“xxx”不支持的包类型“DotnetCliTool”。 0
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" />
</ItemGroup>
到 csproj 并尝试恢复包。此时我得到另一个错误:
C:\Program Files\dotnet\sdk\2.0.0\NuGet.targets(102,5): error : Value cannot be null.\r [C:\...\xxx.csproj]
C:\Program Files\dotnet\sdk\2.0.0\NuGet.targets(102,5): error : Parameter name: key [C:\...\xxx]
所以现在我想知道 .NET 4.6.1 项目是否支持用户机密。如果是,我错过了什么?
编辑:我从 ASP.NET Core 2.0 应用程序中找到了 secrets.json,并将其复制到一个新创建的适合此控制台应用程序的文件夹中,并且正确获取了用户密码。因此,从使用的角度来看,它似乎可以正常工作。我遇到的问题实际上是以一种方便的方式设置秘密。
【问题讨论】:
标签: c# azure-webjobs