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的配置

  1. using System;
  2. using System.Web.Http;
  3.  
  4. namespace webapi
  5. {
  6. public class Global : System.Web.HttpApplication
  7. {
  8.  
  9. protected void Application_Start(object sender, EventArgs e)
  10. {
  11. #region webapi的相關配置
  12. // GlobalConfiguration在Microsoft.AspNet.WebApi.Core裏,用nuget添加Microsoft.AspNet.WebApi
  13. GlobalConfiguration.Configure(config =>
  14. {
  15. // Web API 路由
  16. config.MapHttpAttributeRoutes();//啓用webapi的屬性路由
  17. // 配置webapi的默認路由模板
  18. config.Routes.MapHttpRoute(
  19. name: "DefaultApi",
  20. routeTemplate: "api/{controller}/{id}",
  21. defaults: new { id = RouteParameter.Optional }
  22. );
  23. });
  24.  
  25. #endregion
  26.  
  27. }
  28.  
  29. protected void Session_Start(object sender, EventArgs e)
  30. {
  31.  
  32. }
  33.  
  34. protected void Application_BeginRequest(object sender, EventArgs e)
  35. {
  36.  
  37. }
  38.  
  39. protected void Application_AuthenticateRequest(object sender, EventArgs e)
  40. {
  41.  
  42. }
  43.  
  44. protected void Application_Error(object sender, EventArgs e)
  45. {
  46.  
  47. }
  48.  
  49. protected void Session_End(object sender, EventArgs e)
  50. {
  51.  
  52. }
  53.  
  54. protected void Application_End(object sender, EventArgs e)
  55. {
  56.  
  57. }
  58. }
  59. }

  

部署webapi在iis上

打開win10的iis管理器,創建一個網站,如下圖。

當然也可以用vs自帶的iis express,直接運行(按f5)就可以了。在開發時可用iis express快速的調試,但部署時就得用上iis了。

我在開發時習慣部署到iis上,這樣開發時只要編譯程序後就直接可以用postman來訪問webapi接口是否正常,不用每次都啓動iis express,這樣速度有點慢,更方便的是可以用vs的調試--》附加到進程,來對已經發布的webapi接口網站進行調試,甚至只以遠程調試服務器上的iis網站來排查問題。

創建接口並測試是否可訪問

創建webapi接口控制類

  1. using System.Web.Http;
  2.  
  3. namespace webapi.example
  4. {
  5. public class TestController : ApiController
  6. {
  7. public IHttpActionResult Get()
  8. {
  9. return Ok("this is TestController.Get()");
  10. }
  11. }
  12. }

  編譯後用postman訪問接口的地址:http://localhost:101/api/test

webapi的路由和控制器在網站有很多教程,可自行學習,我個人建議看webapi的官網教程就行了,有中文版的,已經說的很清楚了,也更權威

webapi官方文檔:webapi路由

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章