【发布时间】:2016-10-01 11:40:20
【问题描述】:
默认情况下,Service Fabric 中 Web API 的 VS 2015 模板会为 Web API 控制器创建基于 OWIN 的托管。该服务在 Startup.cs 文件中的默认代码为:
public static void ConfigureApp(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
我用以下代码替换了这段代码:
public static void ConfigureApp(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
appBuilder.UseWebApi(config);
}
并添加了
[RoutePrefix("mycontroller")]
public class ValuesController : ApiController
{
...
}
并尝试通过http://localhost:port/mycontroller. 导航
它不起作用。
当我使用 ASP.NET 宿主项目创建 Web api 控制器时,相同的代码可以正常工作。
我在这里做错了吗?
【问题讨论】:
-
您是否为您的操作添加了
Route属性?RoutePrefix单独不会创建任何路由。 -
你是对的。我忘记将 Route 属性添加到操作中。谢谢。
标签: asp.net-web-api service owin azure-service-fabric stateless