调试 IIS 网站时,ASP.NET Core 2 Web 应用程序不会加载用户机密

2024-02-20

注意:这个问题现已解决 - 请参阅我的Update 3下面为解决方案。

我有一个 ASP.NET Core 2 Web 应用程序,需要连接到 SQL Server 数据库。根据我的Update 2下面我正在使用 IIS 调试应用程序。

我正在加载配置Program类(因为我需要它来设置日志记录),如下所示:

public static IConfiguration Configuration => new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .AddJsonFile($"appsettings.{EnvName ?? "Production"}.json", optional: true)
    .AddUserSecrets<Startup>(false)
    .Build();

My BuildWebHost方法如下所示:

public static IWebHost BuildWebHost(string[] args)
{
    return WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseConfiguration(Configuration)
        .UseSerilog()
        .Build();
}

My appSettings.json文件有此部分:

{
  "ConnectionStrings": {
    "DefaultConnection": "*****" // secret
  }
}

我使用 Visual Studio 中的上下文菜单将用户机密文件添加到项目中,复制上述部分,但使用真正的连接字符串。

一切就绪后,我的代码将引发有关连接字符串格式的异常。但是,如果我在主目录中替换“*****”appSettings.json文件与真实的连接字符串应用程序工作正常。所以我认为它没有加载我的用户机密。

现在,我想使用重载AddUserSecrets传递论点false如果无法加载用户机密,将导致代码中断。但它并没有在这里破裂。我不知道我还能做什么。什么会导致 ASP.NET Core 无法加载用户机密?

Update 1

调试时,我可以在我的配置属性中看到它有我期望的 3 个提供程序:appsettings.json, appsettings.Development.json, and secrets.json。但是,秘密提供程序的文件根目录是我的调试路径,而不是我的秘密文件的位置,即 C:\Users[用户名]\AppData\Roaming\Microsoft\UserSecrets...

Update 2

我意识到 Web 项目的调试设置指向一个 IIS 站点,该站点使用在ApplicationPoolIdentity用户。这是否意味着用户机密需要位于 C:\Users[app-pool-user]\AppData\Roaming\Microsoft\UserSecrets 下而不是我自己的用户帐户下?我尝试将 GUID 命名的 Secrets.json 文件夹复制到此位置,但这没有帮助。但是,我尝试更改为在 IIS Express 下运行,这次用户机密are已加载。但由于各种原因,我需要能够在特定域名下调试此应用程序,那么如何才能将我的用户机密加载到我的 IIS 上下文中呢?我尝试更改应用程序池以使用我的主要 Windows 用户而不是AppPoolIdentity但这并没有帮助。

更新3:已解决

嗯,今天我学到了一些东西!最终它是答案在这里 https://stackoverflow.com/questions/31049152/publish-to-iis-setting-environment-variable这解决了我的问题,但不是以我预期的方式。我从最初的问题(加载用户机密)继续前进,因为我意识到通过在 IIS 上托管,我实质上是在处理部署而不是临时调试会话。因此,我将用户机密移至环境变量(例如,在我的连接字符串示例中,添加系统环境变量ConnectionStrings:DefaultConnection)并添加一个AddEnvironmentVariables()到我的配置设置。但我仍然发现由于某种原因这些没有被加载到我的配置中。最后我发现感谢这个帖子 https://stackoverflow.com/questions/31049152/publish-to-iis-setting-environment-variableIIS 有一个地方可以添加隐藏在配置编辑器深处的本地环境变量。在这里添加我的变量解决了问题,意味着我现在可以在 IIS 中本地托管和调试,同时保证我的秘密安全。


我发现在 IIS 下运行时,secrets.json 应该位于站点的物理路径中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调试 IIS 网站时,ASP.NET Core 2 Web 应用程序不会加载用户机密 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 安卓JSON解析

    我需要有关我的代码的建议 我正在尝试解析 PHP 函数生成的 JSON 数组json encode My json data streamer froggen yt length 25078 streamer wingsofdeath yt
  • Twitter Bootstrap 包含 jQuery 吗?

    Does 推特引导程序 http getbootstrap comv3 包括jQuery http jquery com 或者我需要单独包含 jQuery 吗 如果它确实包含 jQuery 则包含什么版本 编号 的 jQuery 以及使用
  • 禁用向访问网站的用户提示“记住我的密码”

    所以我有一个 ASP Net MVC 网站 我想知道是否有可能让用户必须手动输入密码 这样浏览器就不会自动填充密码 这似乎是一个简单的问题 但通过谷歌搜索我只是得到了有关客户如何禁用提示的说明 我从来没有用过它 但是有一个自动完成属性 当禁
  • 在提交到服务器之前如何在 Fine Uploader 中获取图像的尺寸并验证它?

    我使用的是5 11 10版本精美上传者 http fineuploader com 我知道有一个验证 http docs fineuploader com branch master api options html validationF
  • 创建对角矩阵(更高维度)

    我有一个n m矩阵 说A 我想创建以下内容m m n矩阵 说B for j 1 n B j diag A j end 我该如何做到这一点而不需要循环 Thanks UPDATE 我已经编辑了问题以修复示例代码中的拼写错误 我相当确定您的示例
  • SqlAlchemy(Flask+Postgres):如何仅更新json字段的特定属性?

    我有一个表 其中有一列声明为 json 我需要通过向 json 值添加键值来更新记录 model class User db Model tablename users loginId db Column db String 128 nul
  • 批量删除文本文件中的一行?

    我正在绞尽脑汁地寻找一个简单的 DOS 批处理文件示例 它将删除数千个 txt 文件的第一行 并以原始文件名保存该文件 在另一个程序执行批处理之后 我必须在外部处理之后的每个文件的开头添加已删除的行 由 X Y Z 组成的文本字符串 您可以
  • 如何从谷歌脚本发送错误状态代码,如错误请求(400)?

    这是一个doPostGoogle App 内的函数返回一个你好世界信息 function doPost e return ContentService createTextOutput Hello World 现在假设我只想接受发布到此 G
  • Tomcat 部署 WAR 文件,但应用程序未在 docker 容器中启动

    我有一个带有注释的 Spring Framework MVC 应用程序 它包含所有依赖项 当tomcat docker容器启动时 它成功部署并打包WAR文件 但应用程序无法启动 Catalina 日志有成功的启动和部署行 tomcat 1
  • 为什么我的 strace 命令不适用于 Fish?

    我正在尝试启动一个可以使用 Bash 启动但不能使用 Fish 启动的命令 On Bash这运作良好 sudo strace f s3000 p pgrep f teams d p o tmp debug log strace Proces
  • 给 UITextView 一个可点击的 URL 链接

    嗨 我已经解决这个问题有一段时间了 我已经读了几篇文章 但我不明白如何制作可点击的UITextView在互联网上发送 这是我的代码 func transformText text String underlined Bool linkURL
  • 查找总和最接近目标的数字组合

    因此 我有浮点数的组合 还有一些目标值 我想看看这些浮点数的任何组合 允许重复 的总和是否可以尽可能接近目标值 现在我从简单开始 我想看看是否可以使用当前的浮点数列表来达到一个目标值 该总和最多可以偏离目标 0 5 我搜索了很多其他代码 但
  • React-native run-ios 找不到 iPhone X 模拟器 | XRPackageModel 9.0.omo

    我首先在 Expo 上启动了我的项目 然后将其退出 现在 我尝试运行命令react native run ios 但它返回此错误 CoreData 注释 无法在路径 Applications Xcode app Contents Appli
  • 如何在 SwiftUI 中将项目与 VStack 内的顶部对齐?

    我刚刚开始使用 swiftui 我面临着 ui 对齐问题 以下代码从图像顶部创建一个空间 VStack alignment leading Image item imageUrl resizable aspectRatio contentM
  • 如何在android中的数组适配器中设置文本颜色

    在我的应用程序中 我创建了一个列表视图并在列表中添加了一些文本 在我的编码部分中 文本被添加为数组适配器以具有复选框 在布局中 我为列表视图指定了白色 因此文本看起来非常暗淡 如何将文本颜色设置为黑色 我已将列表视图放置在布局文件中 并将文
  • 无需解码图像即可获取 JPEG 分辨率

    我试图在不解码文件的情况下获取 JPEG 图像的分辨率 我从互联网上获得了几个样本 但没有一个可以正常工作 似乎是这样因为manyJPEG 文件不是标准文件 但任何图形应用程序 Irfan PSP Firefox 等 都可以打开它们 JPE
  • 将承运人邮寄至 Bigcommerce Shipments API

    当物品通过 FedEx 运送时 我希望最终客户看到 FedEx 追踪号码 如何指明承运商 我是否需要在 Shipping method 字段中输入 FedEx 运输承运商只能在初始 POST 期间设置 而不能在后续 PUT 请求中设置 创建
  • Facebook/Twitter 风格照片网格风格布局[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试实现 facebook 风格的照片网格布局 我为此使用 angularjs 和 bootst
  • 使用 Google App Engine 套接字进行 DNS 查询

    我正在尝试使用 Google App Engine 的新套接字支持来执行一些 DNS 查询 我在用着dnspython http www dnspython org 执行查询 并且代码在 GAE 之外运行良好 代码如下 class DnsQ
  • 调试 IIS 网站时,ASP.NET Core 2 Web 应用程序不会加载用户机密

    注意 这个问题现已解决 请参阅我的Update 3下面为解决方案 我有一个 ASP NET Core 2 Web 应用程序 需要连接到 SQL Server 数据库 根据我的Update 2下面我正在使用 IIS 调试应用程序 我正在加载配