WebApi:在路径中接受GET文件

时间:2016-12-12 12:33:33

标签: c# .net http asp.net-web-api asp.net-web-api2

我正在为现有项目创建一个小型身份验证API。我们的想法是所有调用都通过此API检查访问令牌。它适用于大多数情况,除了在路径中有任何文件扩展名

这适用:localhost:26860 / TranslationService / widgest / QuotationWidget

这不是:localhost:26860 / TranslationService / widgest / QuotationWidget.js

这是我的路线:

config.Routes.MapHttpRoute(
            name: "Default",
            routeTemplate: "{*uri}",
            defaults: new { controller = "Gateway", uri = RouteParameter.Optional });

控制器:

[RoutePrefix("")]
public class GatewayController : ApiController
{
   public async Task<HttpResponseMessage> Get(string uri)
    {
     ....
    }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果收到404错误消息,则应将handler配置添加到system.webservice部分的处理程序部分:

<add 
    name="jsFileExtension" 
    path="api/nav/*/*.js" 
    verb="GET" 
    type="System.Web.Handlers.TransferRequestHandler" 
    preCondition="integratedMode,runtimeVersionv4.0" 
/>