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


    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路由

  • 相关阅读:
    JUC组件扩展(二)-JAVA并行框架Fork/Join(四):监控Fork/Join池
    JUC组件扩展(二)-JAVA并行框架Fork/Join(三):在任务中抛出异常
    JUC组件扩展(二)-JAVA并行框架Fork/Join(二):同步和异步
    JUC组件扩展(二)-JAVA并行框架Fork/Join(一):简介和代码示例
    JUC组件扩展(一):FutureTask理解
    JUC之AQS
    mysqldump全量备份+mysqlbinlog二进制日志增量备份
    linux下利用shell脚本和mysqldump热备份和恢复mysql
    分布式链路追踪(Tracing)系统 – Jaeger在Golang中的使用
    微服务的时间和成本去哪儿了
  • 原文地址:https://www.cnblogs.com/shengyu-kmust/p/8251290.html
Copyright © 2020-2023  润新知