使用EF生成Web API 2控制器遇configSource不支持,求定位原因
问题根源:脚手架工具与
configSource的兼容性限制 这个问题完全和configSource特性相关,和Unity或者依赖注入(DI)本身没有直接关系。
具体原因:
- ASP.NET的脚手架工具(用于生成EF相关的Web API控制器/视图)在解析Web.config时,内部逻辑并没有实现对
configSource的处理——它没办法自动读取通过configSource引用的外部配置文件内容,只要Web.config里存在任何使用configSource的节点,就会触发这个报错。 - 你遇到的情况只是刚好这个
configSource是用来引用Unity配置的,但换成其他任何用configSource的配置段(比如<connectionStrings configSource="xxx.config" />),都会触发同样的问题。
临时解决办法:
- 方案一:临时注释掉
<unity configSource="Unity.config" />,把Unity的配置内容直接粘贴到Web.config的<unity>节点中,完成脚手架生成后,再改回引用外部配置文件的方式。 - 方案二:跳过脚手架工具,手动编写Web API控制器代码——毕竟脚手架只是辅助生成基础代码的工具,EF的数据库操作、Unity的DI注入逻辑本身不受这个限制影响,手动写代码完全可以正常运行。
内容的提问来源于stack exchange,提问作者Ogglas
相关产品推荐
相关产品推荐

