一、假如是新建项目最简朴,文件=>新建=>项目=>Web=> ASP.NET Web 应用程序,在下方同时勾选Web Forms 和 Web API 中心援用即可,webfroms中心和WebAPI中心的应用程序就建立好了。
二、假如是原有的项目上增添WebAPI,只需将相干的包援用即可。
1.这里先建立WebForms 应用程序
2.Webfroms项目建立完成后,须要用到VS的NuGet包治理器。右击援用,挑选 治理NuGet程序包。
挑选 阅读,搜刮WebAPI,挑选第一个Microsoft.AspNet.WebApi;点击右侧的装置后点击肯定,后挑选我接收,比及输出显现胜利,则装置完成。
3.右击Web项目,增加名为App_Start的文件夹,在App_Start文件夹下建立名为WebApiConfig的cs文件。
清算定名空间,将类更改成static范例,增加必要代码,缺乏援用的自行援用。
完全代码以下:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Http;namespace WebFormsDemo {public static class WebApiConfig {public static void Register(HttpConfiguration config) {// Web API 设置和效劳// Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } } }
4.须要在Global.asax文件下的Application_Start要领中注册一下WebAPI,这里须要援用System.Web.Http;完全代码以下:
protected void Application_Start(object sender, EventArgs e) {// 在应用程序启动时运转的代码 GlobalConfiguration.Configure(WebApiConfig.Register); }
5.接下来让我们来测试一下,新建一个Controller
6.阅读器接见http://localhost:27650/api/values/get?id=1,测试通过。
三、运用OWIN来作为宿主启动Webapi
上述是运用Global体式格局启动WebAPI,假如项目中运用的SignalR,就必须运用OWIN来作为宿主,虽然网上有教程Global也能够启动SignalR(在中Application_Start要领加上一句 RouteTable.Routes.MapHubs();),然则微软早在2014年6月就对其声清楚明了过期,发起运用Owin Startup Class的体式格局启动SignalR。()
1.空话不多说,新建Startup类
2.直接在Configuration 要领下新建一个ConfigureWebapi要领,完全代码以下:
/// <summary>/// 设置Webapi/// </summary>/// <param name="app"></param>public void ConfigureWebapi(IAppBuilder app) {//建立一个HTTP的实例设置HttpConfiguration config = new HttpConfiguration();//映照路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );//将设置注入OWIN管道中 app.UseWebApi(config); }
3.我们发明,有毛病信息IAppBuilder中未包括UseWebApi的定义,原因是缺乏Self-Host寄宿支撑,在程序包治理器控制台,中输入以下指令:
Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
4.装置完成后毛病提醒消逝
5.移除Global中的启动体式格局,并将ConfigureWebapi要领初始化。
6.让我们来测试一下,http://localhost:27650/api/values/get?id=1,报毛病404.
7.原因是还缺乏一个名为 Microsoft.Owin.Host.SystemWeb 的包,这个包供应了Owin效劳运转ASP.NET 收集要求管道。在程序包治理器控制台,中输入以下指令:
install-package Microsoft.Owin.Host.SystemWeb
8.让我们再来测试一下,阅读器中输入http://localhost:27650/api/values/get?id=1,测试通过。
末了,值得一提的是官方的教程大多都运用隐式范例var 关键字,有网友说运用隐式范例的优点有
1.它有利于更好地为当地变量定名。
2. 它有利于设想更好的API。
3. 它促使对变量举行初始化。
4. 它消除了代码的杂沓。
5. 它不须要using指导符。
楼主还没有深入的体味和研讨,不敢在这里妄加诠释。还在进修中,下面是微软官方的文档,人人感受一下。
文章到这里就完毕了,实在写怎样搭建WebAPI的文章也许多,这里仅仅是做一下纪录,以防本身忘记,假如此文章有幸被你看到,迎接不吝珠玉。
以上就是怎样在Webforms 下搭建WebAPI?的细致内容,更多请关注ki4网别的相干文章!