webapi框架搭建-建立项目(二)-以iis为部署环境的配置

webapi框架搭建系列博客

上篇:webapi快速框架搭建-建立项目(一)html

在“建立项目(一)“这一篇里已经建立了一个空的项目,但项目上什么都没有,本篇描述如何将webapi配置成部署在iis上。

步骤

用nuget添加webapi包

空项目默认是没有webapi相关的dll,要本身去nuget里安装。web

 

建立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管理器,建立一个网站,以下图。express

固然也能够用vs自带的iis express,直接运行(按f5)就能够了。在开发时可用iis express快速的调试,但部署时就得用上iis了。api

我在开发时习惯部署到iis上,这样开发时只要编译程序后就直接能够用postman来访问webapi接口是否正常,不用每次都启动iis express,这样速度有点慢,更方便的是能够用vs的调试--》附加到进程,来对已经发布的webapi接口网站进行调试,甚至只以远程调试服务器上的iis网站来排查问题。服务器

建立接口并测试是否可访问

建立webapi接口控制类mvc

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/testapp

webapi的路由和控制器在网站有不少教程,可自行学习,我我的建议看webapi的官网教程就好了,有中文版的,已经说的很清楚了,也更权威框架

webapi官方文档:webapi路由post

相关文章
相关标签/搜索