2016-12-12 10 views
0

私は既に存在するプロジェクト用の小さな認証APIを作成しています。すべての呼び出しがアクセストークンをチェックするこのAPIを通過するという考え方です。パス内のすべてのファイル拡張子がある場合、それはを除いてほとんどの場合のために働くWebApi:パス内のGETファイルを受け入れる

この作品:ローカルホスト:26860/TranslationService/widgest/QuotationWidget

これません:ローカルホスト:26860/TranslationService/widgest

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) 
    { 
    .... 
    } 
/QuotationWidget.js

は、これが私のルートです

私は間違って何をしていますか?

+0

周り例えばスラッシュURL接尾辞を付けるれる作業localhost:26860/TranslationService/widgest/QuotationWidget.js/localhost:26860/TranslationService/widgest/QuotationWidget.js – acidbabies

+0

404エラーメッセージが表示されますか? – esiprogrammer

+0

@esiprogrammer、それは404エラーメッセージです。 "リソースが見つかりません" –

答えて

0

あなたはsystem.webserviceセクションでhandlerの構成ハンドラセクションに追加する必要があり404エラーメッセージが出た場合:

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

が、この作品は唯一の.jsファイルのためではないでしょうGET?これは単なるゲートウェイなので、ユーザーが望むパスやファイルに関係なく、すべてのトラフィックをリダイレクトする必要があります。 –

+0

@Gunoiはファイル拡張子を '.js'にします。各エクステンションに対してハンドラを指定する必要があります – esiprogrammer

関連する問題