The*_*der 8 c# asp.net asp.net-web-api asp.net-core
我创建了一个开箱即用的 ASP.NET Core 6 Web API 项目。
当我启动该项目时,我可以看到 Swagger 已加载,显示单个 WeatherForecast 端点,该端点在测试时可以工作。
但是,当我从另一个 .NET Core 应用程序启动 Web API 项目时,未发现控制器。Swagger 返回以下消息以供参考。手动调用端点Url也失败。
经过对此问题的一些调查后,我发现如果我手动注册 WeatherForecast 控制器,它将在 Swagger 中可见并在请求时可访问。
为什么从另一个 .NET Core 应用程序运行 ASP.NET 应用程序时未发现 WeatherForecast 控制器?
源代码:GitHub
使用@RichardDeeming链接的答案,我能够让它在 .Net 6 中工作。AddControllers在 Program.cs 中查找并将其调整为如下所示(替换TestServiceController目标程序集中的控制器之一):
var assembly = typeof(TestServiceController).Assembly;
builder.Services.AddControllers()
.PartManager.ApplicationParts.Add(new AssemblyPart(assembly) );
Run Code Online (Sandbox Code Playgroud)
小智 3
你有没有尝试过这个:
builder.Services.AddMvc()
.AddApplicationPart(typeof(WeatherForecastController).Assembly)
.AddControllersAsServices();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6781 次 |
| 最近记录: |