c# - 无法从 .Net 5.0 WebApi 访问 GlobalConfiguration.Configuration
问题描述
GlobalConfiguration.Configuration
在新的 ASP.NET Core WebApi 项目 (.Net 5.0) 中似乎不可用。
重现步骤:
- 创建一个新的“ASP.NET Core Web Api”项目。(目标框架:.NET 5.0,Lang:C#)
- 将此行添加到您的代码中的任何位置:
var config = GlobalConfiguration.Configuration;
例如将其添加到 Startup.cs:
public Startup(IConfiguration configuration)
{
var c = GlobalConfiguration.Configuration; // this line was added
Configuration = configuration;
}
- 你需要一个
System.Web.Http.GlobalConfiguration
看起来与Microsoft.AspNet.WebApi.WebHost
Nuget 包对应的包,所以安装它:
Install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.7
- 运行应用程序,在我们的新代码行看到它失败,但以下异常:
System.TypeLoadException
HResult=0x80131522
Message=Could not load type 'System.Web.Routing.RouteTable'
from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Source=System.Web.Http.WebHost
StackTrace:
at System.Web.Http.GlobalConfiguration.<>c.<CreateConfiguration>b__11_0()
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy`1.CreateValue()
at System.Lazy`1.get_Value()
at System.Web.Http.GlobalConfiguration.get_Configuration()
at AspNetCore5._0.Program.Main(String[] args) in C:\work\AspNetCore5.0\Program.cs:line 17
我最终想要实现的......是使用 AutoFac 作为我的依赖解析器(我得到了这个工作)。但是,当我按照AutoFac 关于 FilterProviders 的文档创建自己的自定义Filters
(例如 ModelValidationFilter、ResponseFilter、ExceptionFilter)时,它需要我获得GlobalConfiguration.Configuration
. 关于获取 GlobalConfiguration 的 AutoFac 文档建议我GlobalConfiguration.Configuration
为“标准 IIS 托管”获取如下:
var config = GlobalConfiguration.Configuration;
...但它显然失败了。
我将不胜感激任何帮助或建议。谢谢!
解决方案
ASP.NET Core 与 ASP.NET 或 ASP.NET WebAPI 不同,虽然控制器等许多东西只需要对端口进行细微调整,但配置和路由却大不相同。
由于您的最终目标是安装 AutoFac 作为依赖关系解析器,请尝试按照 AutoFac 的ASP.NET Core 文档进行操作。
推荐阅读
- unit-testing - Sqlmock + Gorm 失败并出现错误“不支持的数据类型:&[]”
- c++ - 如何在不制作 2 个版本的情况下切换代码的深层嵌套部分
- sql - 我正在尝试查找无法绑定多部分标识符的原因
- java - 如何使用 Room.databaseBuilder() .createFromFile 将数据从 database.db 文件导入房间数据库?
- android - Kotlin 将数据发送到片段
- python - 层dense_20的输入0与层不兼容:输入形状的预期轴-1具有值1152但接收到形状为(1, 530880)的输入
- ruby-on-rails - bundler:加载失败命令:sidekiq -> systemd
- python - 如何确定一个列表的均匀分布程度?
- react-native - 带有功能组件的动态标题
- python - Discord.py 让用户在 2 个反应之间进行选择