我有一个控制器定义如下:
[Route("api/MyAPI")]
public class MyController : Controller
{
[HttpGet, HttpPost, Route("GetData")]
public async Task<MyResponse> GetData()
{
MyResponse response = new MyResponse();
int i = await myService.ExecuteAsync();
response.IncomingUrl = this.Request.GetDisplayUrl();
response.intVal = i;
return response;
}}
在服务结构群集中部署时,这会引发404错误,但在本地部署时可以正常工作。我在本地使用的URL是https://localhost:5400/api/MyAPI/GetData,部署到云时使用的URL是https://myservice.com/api/MyAPI/GetData。
当我从类的顶部移除[Route(“API/MyAPI”)]块(第1行)并将其作为[HttpGet,HttpPost,Route(“api/MyAPI/GetData”)]包含在方法中(第4行)时,它在本地和云上都可以工作。
为什么会发生这种情况,我该如何解决?
1条答案
按热度按时间ffx8fchx1#
我认为您正在为控制器查找RoutePrefix属性,而不是Route:
希望这能解决问题