最近需要在项目中添加一个Web Api,项目是.net mvc4项目。要想添加一个api,无论你怎么封装,无非就是在Application_Start方法中将WebApi的路由注册进去就行了。例如如下代码:

public static class WebApiConfig{public static void Register(HttpConfiguration config){config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional });}}

将上面的Register方法在Application_Start方法中调用就相当于注册完成。可是笔者已经完成了以上工作,访问Api还是404错误,找不到。百思不得其解啊。。。

最后发现原来路由的注册顺序有关系。正常的mvc项目会注册普通Controller,action的路由信息:例如如下代码:

public static void RegisterRoutes(RouteCollection routes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });}

 该方法也会在Application_Start中调用。

关键来了::::要先调用Api对应的注册路由方法,后调用普通Controller的路由注册方法。因为笔者是后来在项目中添加的WebApi,所以就在最后注册的Api路由,可就是无法访问到。最后将它在普通路由之前注册就成功访问到了!

不知道这是.net mvc的bug,还是就是这么设计的。

转载于:https://www.cnblogs.com/dreamofei/p/4481727.html

Web Api无法访问 404相关推荐

  1. 连接Android与ASP.NET Core Web API的完整教程

    目录 准备数据库 ASP.NET Core Web API项目 创建新的ASP.NET Core Web API项目 实体 导入EF Core 创建DbContext 将连接字符串添加到appsett ...

  2. ASP.NET Web API与Owin OAuth:使用Access Toke调用受保护的API(二)

    在前一篇博文中,我们使用OAuth的Client Credential Grant授权方式,在服务端通过CNBlogsAuthorizationServerProvider(Authorization ...

  3. ASP.NET Web API与Owin OAuth:使用Access Toke调用受保护的API

    在前一篇博文中,我们使用OAuth的Client Credential Grant授权方式,在服务端通过CNBlogsAuthorizationServerProvider(Authorization ...

  4. 详解Minimal Web API的使用

    一.简介 "Minimal API 是为了创建具有最小依赖关系的 HTTP API",这是官方的解释.什么意思呢,创建一个 API 并不需要加载许多的依赖.平时在开发 ASP.NE ...

  5. 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)

    目前最新的代码已经通过Sqlite + NHibernate + Autofac满足了我们基本的Demo需求. 按照既定的要求,我们的API会提供给众多的客户端使用, 这些客户端可以是各种Web站点, ...

  6. 使用 Microsoft Excel 轻松访问 Web API

    今天的 Web API 是最常见的技术之一,也是大数据的入口点.许多持有.收集或处理数据的公共和私人组织现在都有某种形式的 API 供有限的公众使用.NASA.天气频道.Flight Radar 甚至 ...

  7. 鸿蒙开发访问webapi,Web API接口

    #e# 3.集合和分页的处理 在很多接口里面,我们都需要用到分页的处理,Web API也不例外,这样可以提交数据检索效率,减少服务器数据处理的压力,同时也提交客户端的数据显示速度. 一般的集合接口定义 ...

  8. Refit结合Polly访问ASP.NET Core Web API

    前言 在.NET Core应用中访问ASP.NET Core Web API接口,常用的方式是使用IHttpClientFactory生成HttpClient实例,并通过结合Polly策略,以实现重试 ...

  9. Web API 跨域访问

    JS调用接口最需要注意的就是跨域问题 在.net平台下使js跨域变得非常简单 1.在nuget中引用 Microsoft ASP.NET Web API 2.2 Cross-Origin Suppor ...

最新文章

  1. git clone错误 fatal: early EOF fatal: index-pack failed
  2. ADS的go to命令
  3. Kaggle知识点:数据分析EDA
  4. boost::posix_time和boost::date_time杂项的测试程序
  5. 关于ASP.NET的web.config的小笔记
  6. 2018+计算机软件,2018年6月考试《计算机软件技术基础(1)》在线考核试题
  7. java最大内存_JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?
  8. windowbuilder怎么加背景图_小红书引流:爆款笔记封面图怎么做?(内附教程)...
  9. PortraitFCN算法详解
  10. 以表达式作为参数传入SQL的存储过程中去
  11. 使用tomcat时,Add and Remove出现异常
  12. NFS客户端挂载目录后无写入权限的解决方案
  13. 70部MAYA灯光材质渲染教程合集
  14. 嵌入式系统笔记之声音
  15. ucfirst() strtoupper() strtolower()
  16. 华为路由器没有虚拟服务器,华为路由器如何设置 华为路由器设置方法介绍【详解】...
  17. 计算机硬盘格式化与储存原理
  18. 年终盘点 | 用Python分析了上千个基金,终于发现了赚钱的秘密!
  19. [W ParallelNative.cpp:212] Warning: Cannot set number of intraop threads after parallel work h
  20. percona的安装、启动、停止

热门文章

  1. Aspx 页面生命周期
  2. 一场媲美“超女”海选的招聘狂潮
  3. [导入]关于OllyDbg 2.0的消息..
  4. 从钱龙数据中读取股票权息信息导入到数据库
  5. C++ STL学习笔记 : 2. unordered map 容器
  6. 江西理工大学南昌校区cool code竞赛
  7. 「前端」History API与浏览器历史堆栈管理
  8. 使用GNS3和Cisco IOU搭建路由交换实验-安装篇
  9. leetcode 54. 螺旋矩阵(递归)
  10. leetcode 771. 宝石与石头(set)