【发布时间】:2015-02-22 21:13:39
【问题描述】:
我的问题是,在我的 Asp.Net OWIN 自托管 Web 服务路由中覆盖 Route-attribute 不起作用。
我的初始路由如下所示:
string routeTempl = "api/" + EndpointManager.API_VERSION + "/{controller}/{action}/{id}";
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: routeTempl,
defaults: new { id = RouteParameter.Optional }
);
我的控制器如下所示:
public class GeneralController : ApiController
{
/// <summary>
/// Ping the api, mostly for testing reason
/// </summary>
/// <returns>Current server datetime</returns>
[HttpGet]
public DateTime Ping()
{
// return datetime as ping
return DateTime.Now;
}
/// <summary>
/// Get the current api version
/// </summary>
/// <returns>Api-Version as a string</returns>
[HttpGet, Route("~/api/version")]
public string ApiVersion()
{
return EndpointManager.API_VERSION;
}
}
ping 方法可以按我的意愿访问,结束:http://localhost:48000/api/v1-0/general/ping
但我无法通过以下方式访问 ApiVersion-Method:http://localhost:48000/api/version
有没有人知道我在Route-attribute 中做错了什么?
谢谢!
【问题讨论】:
标签: c# asp.net-web-api routing owin self-hosting