webapi框架搭建系列博客
上篇:webapi快速框架搭建-創建項目(一)
在“創建項目(一)“這一篇里已經創建了一個空的項目,但項目上什么都沒有,本篇描述如何將webapi配置成部署在iis上。
步驟
用nuget添加webapi包
空項目默認是沒有webapi相關的dll,要自己去nuget里安裝。

創建Global.asax全局應用程序類
所有以iis為載體的網站應用的入口為HttpApplication類的Application_Start方法(不管是webapi還是mvc還是web form都是一樣的,只要以iis為網站服務器載體都是這樣),而httpapplication一般寫在global.asax文件里。
如果不想將網站部署到iis上,可以用owin技術,這樣就不用創建Global.asax文件了,在后面博客里會講到。

在Global類的Application_Start里寫入webapi的配置
using System; using System.Web.Http; namespace webapi { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { #region webapi的相關配置 // GlobalConfiguration在Microsoft.AspNet.WebApi.Core里,用nuget添加Microsoft.AspNet.WebApi GlobalConfiguration.Configure(config => { // Web API 路由 config.MapHttpAttributeRoutes();//啟用webapi的屬性路由 // 配置webapi的默認路由模板 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }); #endregion } protected void Session_Start(object sender, EventArgs e) { } protected void Application_BeginRequest(object sender, EventArgs e) { } protected void Application_AuthenticateRequest(object sender, EventArgs e) { } protected void Application_Error(object sender, EventArgs e) { } protected void Session_End(object sender, EventArgs e) { } protected void Application_End(object sender, EventArgs e) { } } }
部署webapi在iis上
打開win10的iis管理器,創建一個網站,如下圖。
當然也可以用vs自帶的iis express,直接運行(按f5)就可以了。在開發時可用iis express快速的調試,但部署時就得用上iis了。
我在開發時習慣部署到iis上,這樣開發時只要編譯程序后就直接可以用postman來訪問webapi接口是否正常,不用每次都啟動iis express,這樣速度有點慢,更方便的是可以用vs的調試--》附加到進程,來對已經發布的webapi接口網站進行調試,甚至只以遠程調試服務器上的iis網站來排查問題。
創建接口並測試是否可訪問
創建webapi接口控制類
using System.Web.Http; namespace webapi.example { public class TestController : ApiController { public IHttpActionResult Get() { return Ok("this is TestController.Get()"); } } }
編譯后用postman訪問接口的地址:http://localhost:101/api/test
webapi的路由和控制器在網站有很多教程,可自行學習,我個人建議看webapi的官網教程就行了,有中文版的,已經說的很清楚了,也更權威
webapi官方文檔:webapi路由