[英]Why is TestServer not able to find controllers when controller is in separate assembly for asp.net core app?
出於某種原因,當在單獨的程序集中創建 ASP.NET 核心控制器時,當客戶端發出請求時,TestServer 無法找到控制器操作。(導致 404 響應)這是為什么? 我該如何解決? 以下是重現的步驟。
請參閱以下鏈接以創建集成測試。 使用 ASP.NET Core 進行集成測試
對於那些在遷移到netcoreapp3.0
期間遇到這種情況的netcoreapp3.0
,我發現上述答案有效,但是您可以通過更改 .csproj 文件本身中的引用來更干凈地完成此操作。
就我而言,我更改了第一行 XML
<Project Sdk="Microsoft.NET.Sdk">
到
<Project Sdk="Microsoft.NET.Sdk.Web">
致謝: https : //github.com/aspnet/Mvc/issues/5992#issuecomment-395408983
除了 joey 回答:沒有必要調用 Assembly.Load() 來解決這個錯誤。 您可以使用下面的代碼。 ServiceHookController
是來自一個單獨項目的類。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddApplicationPart(typeof(ServiceHookController).Assembly);
}
如果您遵循MS 文檔中的先決條件,則會加載來自不同程序集的控制器。
在我的情況下,添加Microsoft.AspNetCore.Mvc.Testing NuGet 包解決了這個問題,我不再需要調用AddApplicationPart
了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.