c# - .net User Secrets 在 Windows 10 上不起作用

标签 c# asp.net .net asp.net-core .net-core

我遇到了 UserSecrets 在 Mac 而非 Windows 上返回我的 secret 的问题。我关注了https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?tabs=visual-studio

在 Windows 上,当我尝试获取 secret 时:Configuration["ConnectionStrings:Production"]它返回 null。

我有 secrets.json文件保存在 C:\Users\username\AppData\Roaming\Microsoft\UserSecrets\<userSecretsId>

我不明白为什么它不能在 Windows 上运行,而在 Mac 上却可以完美运行。非常感谢任何帮助。

可能值得注意的是这是在 Windows 服务器上

我现在想知道 %AppData%在 IIS 上下文中有什么不同?

我认为this thread是正确的方向,但没有一个解决方案适合我

最佳答案

IIS ApplicationPoolIdentity 应该有它自己的用户配置文件文件夹,这与您的用户文件夹不同。

要找到它,导航到 C:\Users,您应该会看到以应用程序池命名的文件夹,因此对于名为“.NET v4.5”的应用程序池,应该有一个名为“.NET v4.5”的用户文件夹。 5"。在该文件夹下,您应该能够通过 AppData 文件夹跟踪面包屑的其余部分,并创建“\AppData\Roaming\Microsoft\UserSecrets”文件夹(如果不存在)。

如果这不起作用或者您没有看到应用程序池的用户文件夹,请打开 IIS 管理器,选择您正在运行的应用程序池,然后打开高级设置(链接在右侧) AdvancedSettings

打开高级设置后,向下滚动到流程模型部分,您应该会看到“加载用户配置文件”的配置,并确保该值设置为 True。在 Windows 10 中默认为 true,但取决于您完成配置的方式,以前的 Windows 版本默认为 False,这将使 secret 不可用。

关于c# - .net User Secrets 在 Windows 10 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48431163/

相关文章:

javascript - 将 C# 列表(多个)转换为 JavaScript 关联数组

c# - 我可以在不丢失信息的情况下将 UInt32、Int32 和浮点值存储在 double 中吗?

c# - 确定 Windows 应用商店应用程序是否已从 Windows 服务中暂停或逻辑删除

asp.net - 如何在 ASP.NET MVC 中的 session 中存储数组?

c# - WCF4 (.NET Framework 4) 是否支持客户端连接池?

c# - 覆盖 xml 文件 #2

c# - 如何只发送指定字段? (并非页面中的所有字段!)

c# - if 语句在 gridview 模板中提交

.net - 为什么从不调用 NET 垃圾收集器?

c# - .NET 紧凑型框架 - 条码扫描仪