2017-04-08 52 views
0

我得到404錯誤,同時調用Web API方法...的Web API的404

下面

是我的代碼

的Web API控制器:

[EnableCors(origins: "*", headers: "*", methods: "*")] 
public class HomeController : ApiController 
{ 
    private HomeDataProvider homeDataProvider = new HomeDataProvider(); 

    // GET api/<controller> 
    [AllowAnonymous] 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 

[AllowAnonymous] 
    [HttpPost] 
    //[Authorization] 
    public List<User> Test_API(HomeSearch searchParam) 
    { 
     List<User> Test_User = null; 
     try 
     { 
      Test_User = homeDataProvider.Test_DataProvider(searchParam); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
     finally 
     { 

     } 
     return Test_User; 
    } 

的Web API配置

 // Web API configuration and services 

     // Web API routes 
     config.MapHttpAttributeRoutes(); 

     config.Routes.MapHttpRoute(
      name: "API Default", 
      routeTemplate: "webapi/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 

Web API Web.config

 <appSettings></appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" /> 
     <roleManager enabled="false" /> 
    <!--<roleManager defaultProvider="AspNetWindowsTokenRoleProvider" 
enabled="true" />--> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true"> 
</modules> 
    <handlers> 
    </handlers> 

     </system.webServer> 

I am using windows 10, vs 2015, iis 10 
url i am calling 
http://localhost/webapi/home/get 
Error: 404, static handler error 

我搜索,妄圖

+0

您的家庭控制器的get方法在哪裏?在你的路線,沒有行動的方法,那麼你如何調用方法 –

+0

這沒有奏效......請爲我提供解決方案。 .. –

+0

在API配置文件中更新您的routeTemplate爲routeTemplate:「webapi/{controller}/{action}/{id}」,並檢查 –

回答

0

在計算器和其他來源,但一切的一切選擇,我認爲你要麼需要添加{action}到您的路徑模板或嘗試調用的端點,而無需得到的URL像這樣:

http://localhost/webapi/home 
+0

我做了下面的改變:仍然404錯誤: config.Routes.MapHttpRoute( name:「API Default」, routeTemplate:「webapi/{controller}/{action}/{id}」, 默認值:new {id = RouteParameter.Optional} ); –

+0

您可以分享您如何嘗試呼叫端點嗎?無論是JavaScript還是其他內容? – Alex

+0

我打電話給瀏覽器 http:// localhost/WebAPI/Home /獲取 –

2

我想出答案

其實: 在網頁API設置: 我選擇:本地IIS,本地主機/ ...的WebAPI創建虛擬目錄 所以我的路線是 localhost/webapi/webapi/home/get 感謝Alex提供的幫助以及您發佈的可能的解決方案...

+0

跳進來看看你發佈的代碼..很高興弄清楚了!您嘗試的東西越多,就越像是IIS設置問題。 – Alex