Issue
,将无法得到答复。异常堆栈是什么?
⚠⚠ 必须提供完整可运行且包含错误的
Git
仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则将无法得到答复。⚠⚠
从 Furion v4.5.4
版本开始彻底禁止错误行为,主机未启动的时候禁止构建服务,包括选项,因为这是错误的行为,被大家错误的用了两年!
https://furion.baiqian.ltd/docs/upgrade
在启动时请使用 App.GetConfig<选项类型>("配置的Key", true)
替代。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Furion
从未教过大家在启动的时候使用 App.GetOptions
,包括 Furion
的源码所有模块都是使用 App.GetConfig
在启动的时候获取配置。
所以我不知道是谁或者哪个项目误导了大家启动的时候去构建服务了!IOptions
就是服务,可以看看 Furion
的源码:
只要启动的时候获取配置,都是 App.GetConfig
而不是 App.GetOptions
由于 Gitee 审核机制关闭了 Gitee Pages,所以之前的文档 https://dotnetchina.gitee.io/furion/ 无法更新了,现在已经使用自己的服务器部署了:https://furion.baiqian.ltd/
国庆假上班后会联系官方处理,关闭旧文档并自动跳转到新文档。
Admin.Net项目(该项目是基于Furion的),一直运行正常,更新Furion后发现如上问题。
检出过其多个版本,一直是这样使用,所以突然不行,以为是bug...故速来报障。
好的,知道是什么原因了。不过使用上感觉还是原来的写法好一些...
没想到这么快就有回复,辛苦了!长假,好好休息!
在过去 App.GetOptions<TOptions>
内部实际上就是 App.GetService<IOptions<TOptions>>().Value
的操作,但是在 Web 主机未启动时服务容器还未初始化,如果使用 App.GetOptions
就会强制性构建一个全新的服务容器,这是不正确的。
Furion
从未这样用过,当然我也有责任,因为文档也从未提及过,导致大家误用了,所以我刚刚已经更新了文档,如果需要在启动的时候获取配置或者选项,可以通过 App.GetConfig<TOptions>("配置key")
的方式,第二个参数 true
时解析 PostConfigure
默认值的意思,通常也设置未 true
。
由于很多项目大量的错误使用导致升级出现问题,迫于无奈,新版本做了兼容:https://gitee.com/dotnetchina/Furion/commit/f9a6587e3f7893db88c905cf77c3c4ebed39b73c
也就是即使错误使用,在新版本也能“纠正”过来,太难了~~
Furion v4.5.6 版本发布,底层处理了升级异常问题,也就是保持原来的代码即可~~
害,我都全部改完了....
项目启动的时候用了 App.GetService(),这种怎么处理
v4.5.7.1 版本发布,该功能恢复了~~哎。
登录 后才可以发表评论