簡體   English   中英

IIS Express上托管的ASP.NET WebAPI2可以從2個不同的項目中加載控制器

[英]ASP.NET WebAPI2 hosted on IIS express loads controllers from 2 differents projects

我創建了一個包含許多OWIN WebApi2項目的解決方案。 這些項目中有兩個的控制器具有相同的路線。

當我嘗試啟動第一個項目時,出現以下錯誤消息:

Multiple controller types were found that match the URL. 
This can happen if attribute routes on multiple controllers match the requested URL. 
The request has found the following matching controller types: 
Project1.WebApi.Controllers.Project1Controller Project2.WebApi.Controllers.Project2Controller

但是,兩個項目都使用不同的名稱空間,並且它們之間沒有任何依賴關系。

如何將Project2的控制器加載到Project1的控制器中?

謝謝

但是,兩個項目都使用不同的名稱空間,並且它們之間沒有任何依賴關系。

沒關系 在運行時,ASP.NET Web API將檢查從ApiController繼承的所有引用程序ApiController所有類型,並將其視為候選。 因此,即使您在2個完全不同的項目中有2個不同的控制器,只要它們具有路由沖突,該沖突也會在運行時顯示。 您將需要修復您的應用程序,以便您永遠不會將兩個具有相同路由的控制器加載到運行時中。 當您考慮它時,這實際上是很有意義的:給定一個路由,如果ASP.NET Web API都定義了完全相同的路由,則它們將不知道要調用兩個控制器中的哪一個。 在這種情況下,一旦啟動應用程序,就會在運行時檢測到此異常,以便盡快將此問題通知開發人員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM