Asp.net mvc 未找到与请求URI名称匹配的HTTP资源http://localhost:7245/api/ftpconfiguration/retrieveftpdetails'
我需要在web服务“APIService”中的“FtpConfiguration”控制器中调用名为“RetrieveFtpDetails”的函数。此外,此web服务是作为现有项目的新项目创建的 RouteConfig.cs WebApiConfig.csAsp.net mvc 未找到与请求URI名称匹配的HTTP资源http://localhost:7245/api/ftpconfiguration/retrieveftpdetails',asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,我需要在web服务“APIService”中的“FtpConfiguration”控制器中调用名为“RetrieveFtpDetails”的函数。此外,此web服务是作为现有项目的新项目创建的 RouteConfig.cs WebApiConfig.cs public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi",
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "API" }
);
}
FTPC配置控制器看起来像:
public class FtpConfigurationController : ApiController
{
[Route("api/ftpconfiguration/retrieveftpdetails")]
[HttpPost]
public List<string> RetrieveFtpDetails()
{
List<string> lstftpcongif;
using (APM context = new APM())
{
lstftpcongif = (from s in context.M_FtpConfigTable select
s.Mode).ToList();
}
return lstftpcongif;
}
}
然后我打电话,得到如下结果:
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:7245/api/ftpconfiguration/retrieveftpdetails'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'ftpconfiguration'.
</MessageDetail>
</Error>
为什么会出现此错误?我发现您的本地主机url不正确 1检查您的web api url或修复webapi的localhost端口。因此没有错误。 2参见示例 通过使用它,您可以解决您的错误 也许这对你有帮助 谢谢我看到三个问题: 您正在使用[HttpPost]-确保您正在使用POST测试此操作。 将默认值路由到API控制器-确保有一个。 您的路由模板无效-因为它包含操作,所以您的路由显然缺少该模板。我建议改为:
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "Route",
routeTemplate: "api/{controller}/{action}",
defaults: new { controller = "FtpConfiguration" }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{action}",
defaults: new { controller = "API" }
);
}
试试这个:WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "API" }
);
}
为什么在方法上有[HttpPost]?你是如何点击URL来测试它的?
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "API" }
);
}