项目升级到.Net8.0 Autofac引发诡异的问题

news/2025/1/22 12:55:41/文章来源:https://www.cnblogs.com/dx5800/p/18501881

前两天把项目升级到.Net8.0了,把.Net框架升级了,其他一些第三方库升级了一部分,升级完以后项目跑不起来了,报如下错误:

An unhandled exception occurred while processing the request.
DependencyResolutionException: None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Microsoft.AspNetCore.Mvc.ApiExplorer.EndpointMetadataApiDescriptionProvider' can be invoked with the available services and parameters:
Cannot resolve parameter 'Microsoft.Extensions.DependencyInjection.IServiceProviderIsService serviceProviderIsService' of constructor 'Void .ctor(Microsoft.AspNetCore.Routing.EndpointDataSource, Microsoft.Extensions.Hosting.IHostEnvironment, Microsoft.AspNetCore.Routing.ParameterPolicyFactory, Microsoft.Extensions.DependencyInjection.IServiceProviderIsService)'.
Autofac.Core.Activators.Reflection.ReflectionActivator.GetAllBindings(ConstructorBinder[] availableConstructors, IComponentContext context, IEnumerable<Parameter> parameters)DependencyResolutionException: An exception was thrown while activating Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator -> Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider[] -> Microsoft.AspNetCore.Mvc.ApiExplorer.EndpointMetadataApiDescriptionProvider.

看着是依赖注入的问题,后面去网上找了一下,找到博客园的一篇文章,提到是vs版本的问题,我现在用的vs版本是17.11.5,看完以后心里想vs应该不会和影响到代码,我想着通过命令行 dotnet xxx.dll 能不能启动,奇怪了命令行可以启动;接着我又用vscode试了一下,也可以启动,这就很奇怪了。
我把项目.Net6.0的代码签出项目可以跑起来,看来还是升级的问题,和依赖注入有关,后面想到了可能是autofac没有升级,把autofac升级到10.0就没问题了。
image

问题虽然解决了,但还是很纳闷,怎么不升级autofac,vs会导致项目跑不起来了,但是通过命令行和vscode又可以。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/823569.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GaussDB 数据导入导出工具介绍

一、数据导入导出场景划分gsql工具适用场景和使用方法适用场景 文本格式对象定义的创建 使用方法 gsql -d db1 -p 16000 -U u1 -W Huawei@123 -f/data/table.sql示例: ALTER SESSION SET CURRENT_SCHEMA = PUBLIC;ALTER TABLE "PUBLC".GA_COM_COLLECTION_ERROR_TABL…

tag 转 branch 前 记得 Fetch 一下 - git基础

tag 转 branch 前 记得 Fetch 一下 - git基础 遇到的问题 当直接在远程的gitlab创建一个新的tag的时候(非本人创建),你本地是没有这个tag,所以你直接用这个tag名称转branch,会出现找不到tag的情况,需要Fetch一下即可。--------------------------------------------- 生活…

GaussDB多租组件

云原生数据库支持多租户,通过多租户资源共享,一是降低租户的成本,二是通过共享资源的池化实现租户的资源弹性,提高租户业务的可用性。 租户的资源弹性支持两种模式,Scale Up和Scale Out。Scale Up是在单个计算节点上对租户的分配资源进行弹性处理,Scale Out是在计算节点之…

Attention mechanism目前有什么缺点和改进空间

Attention mechanism是自然语言处理和计算机视觉领域的一项重要技术,但存在一些缺点和改进空间。主要缺点包括:1.计算复杂性高;2.缺乏解释性;3.可能产生不必要的注意力分配;其中,计算复杂性高可能限制了在大规模数据上的应用。改进方向包括:1.优化算法效率;2.增强模型解…

PbootCMS登录后权限不足怎么办

登录后权限不足问题描述:登录后无法访问某些功能或页面,提示权限不足。 解决方案:检查用户角色和权限:确保当前用户的角色和权限设置正确。 检查权限配置:检查PBootCMS的权限配置文件,确保没有错误的配置。 重新分配权限:在后台管理中,重新分配用户的角色和权限。 检查…

PbootCMS网站打开提示:“无法连接到数据库!”

网站打开提示:“无法连接到数据库!”问题原因:数据库配置不正确或数据库服务未启动。 解决方法:检查 config/database.php 文件中的数据库配置信息是否正确,包括数据库地址、端口、用户名、密码和数据库名称。 确保数据库服务已启动,并且可以从 Web 服务器访问。扫码添加…

智子: Vue Vapor年底发布alpha版本,如果有资金支持

前言 在最近的Vue Fes大会上,Vue Vapor的作者智子大佬宣布,如果能够得到资金支持,那么Vue Vapor年底就能发布alpha版本了。 关注公众号:【前端欧阳】,给自己一个进阶vue的机会 智子也需要赚钱养活自己 根据尤大透露,过去一年以来智子接受赞助全职在为Vue Vapor工作。现在…

帝国cms调用当前顶级栏目下所有下级子栏目并且当前高亮显示啊

[e:loop={"select classname,classpath,classid from phome_enewsclass where bclassid=".$class_r[$GLOBALS[navclassid]][bclassid]." order by myorder,classid desc ",0,24,0}] <?php $classurl=sys_ReturnBqClassname($bqr,9);?> <a href=…

帝国cms一句MySQL语句实现多表数据之和

SQL语句:SELECT COUNT(AA.id) AS total FROM (SELECT id FROM www_moban5_cn_ecms_newsUNION ALLSELECT id FROM www_moban5_cn_ecms_xiazaiUNION ALLSELECT id FROM www_moban5_cn_ecms_photoUNION ALLSELECT id FROM www_moban5_cn_ecms_download ) AA;在帝国CMS后台使用:SEL…

无缝对接,高效协同:能源电力行业的文件摆渡方案新鲜出炉!

在能源电力行业,涉及大量敏感信息和重要数据需要得到严格保护,比如电力生产与供应链数据、电网运行与维护数据、用户信息与用电数据、研发与创新数据等。随着企业的不断发展,企业数字化转型的逐渐深入,需要重点关注数据安全。因此大部分能源电力企业会将网络划分成内网和外…

PbootCMS 织梦后台左侧菜单空白不显示的解决办法

权限问题:检查 data 文件夹及其子文件夹是否有写入权限,确保在Linux和Windows系统中都正确设置了权限。 对于Linux系统,可以通过命令行使用 chmod -R 777 data 命令赋予写入权限;对于Windows系统,则需要通过文件属性手动设置。缺少必要的文件夹:如果 /data/cache/, /data…

怎么修改网站后台标题?怎样修改企业网站密码?

修改网站后台标题登录后台管理:首先,你需要登录到你的网站后台管理系统。找到设置选项:通常在后台管理界面的顶部或侧边栏会有“设置”、“系统设置”或“站点设置”等选项。编辑标题:在设置页面中,找到“网站标题”、“站点名称”或类似的字段,输入你想要的新标题。保存…