2014-11-04 82 views
0

我有一個API端點,應將某些數據導出爲Excel xlsx文件。我試圖得到的URL是這樣的:localhost/service/resources/123.xlsx(因爲我認爲使用這個擴展是一個很好的方法)。 但它總是給我一個404 Not Found。未找到Web Api路由{id:int} .xlsx

該控制器具有路由前綴:[RoutePrefix("resources")]和行動上的路由屬性是:[Route("{id:int}.xlsx")]

即使當我改變了路線[Route("123.xlsx")]它不會找到它。我也嘗試了一個正則表達式約束[Route("{key:regex(\\d+\\.xlsx}")]沒有運氣。

我懷疑它可能由靜態文件處理程序被抓住,但web配置已經設定

<modules runAllManagedModulesForAllRequests="true"/> 

我認爲這應該工作,因爲它的工作在以前的項目非常相似的路線,使用舊的路由設置和不屬性路由。該項目沒有使用OWIN託管,但是問題在這裏?

我該如何做這項工作?我需要GET和PUT這條路線。

Btw,localhost/service/resources/123將返回資源的不同表示形式。

信息:託管在IIS中使用OWIN 3.0和Web API 5.2.2

回答

0

我發現here 7.5,加入這行代碼

app.UseStageMarker(PipelineStage.MapHandler); 

app.UseWebApi() 

Startup類使它工作!

(我實際上並不完全明白它的功能,但嘿,誰在乎)