2016-12-12 69 views
0

我正在爲已經存在的項目創建一個小型認證API。這個想法是所有的調用都通過這個API來檢查訪問令牌。它適用於大多數的除外情況下,當該路徑有任何文件擴展名WebApi:接受路徑中的GET文件

此作品:本地主機:26860/TranslationService/widgest/QuotationWidget

這不:本地主機: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) 
    { 
    .... 
    } 

我做錯了什麼?

+0

一個解決辦法是後面添加例如斜線的URL localhost:26860/TranslationService/widgest/QuotationWidget.js /而不是localhost:26860/TranslationService/widgest/QuotationWidget.js – acidbabies

+0

你會得到404錯誤消息嗎? – esiprogrammer

+0

@esiprogrammer,它是一個404錯誤消息。 「資源無法找到」 –

回答

0

,如果你得到你應該添加handler配置,處理器部分system.webservice部分404錯誤消息:

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

糾正我,如果我錯了,但不會只爲.js文件工作?因爲這只是一個網關,它需要重定向所有的流量,不管用戶想要什麼路徑或文件 –

+0

@Gunoi它只有'.js'文件擴展名。您需要爲每個擴展指定一個處理程序 – esiprogrammer