近期学习WebApi,初步感想是用起来很容易上手,概念上也很好理解,唯一不爽的地方就在于如果在Visual Studio环境里建立Webapi程序,它会自动给创建很多文件夹和文件,其中很多都是用不到的,经过Google和摸索,结合项目的实际需要,将Webapi作为一个单独的Class library存放,而Host程序分别为Console和IIS,下面做一下记录。

一、建立类库项目

1、在Visual Studio开发环境中,点击菜单 File->New Project->Class Library 新建一个类库项目, 如图:

2、安装 Microsoft.AspNet.WebApi.Core 包及其依赖

在Visual Studio开发环境中,点击菜单 Tools -> NuGet Package Manager -> Package Manager Console 进入 Nuget包管理器控制台,选择 Default project 为刚刚建立的类库项目,这里是 controller_library

在包管理器控制台中输入:

Install-Package microsoft.aspnet.webapi.core

如图:

3、编写测试Controller

4、安装 microsoft.aspnet.webapi.owin 包及其依赖

5、编写Startup

解决方案中,右键单击 controller_library, add -> class , 命名为 Startup.cs

二、建立宿主程序(Host)

1、在解决方案上单击右键,新建控制台项目,命名为WebAPIHost,打开 包管理器控制台,输入:

install-package microsoft.aspnet.webapi.owin

2、添加引用

3、编写宿主代码

4、编译解决方案,运行宿主程序:

5、测试

三、Host WebAPI 到IIS

1、建立空的Asp.Net 项目,将其命名为 WebAPIHost_IIS

2、右键单击 WebAPIHost_IIS 项目,添加目录 App_Start 并添加 WebApiConfig类

3、安装包 Microsoft.AspNet.WebApi.Core 及其依赖

install-package microsoft.aspnet.webapi.core

4、WebApiConfig的实现代码如下:

5、添加 Global Application Class

右键单击项目,add-> Global Application class,默认名称即可,这里是 Global.asax

6、安装 Microsoft.AspNet.WebApi.WebHost 包及其依赖

install-package Microsoft.AspNet.WebApi.WebHost

7、Global.asax.cs 代码如下:

8、现在,打开IIS(Internet信息服务管理器),添加网站绑定端口,目录指向 WebAPIHost_IIS 的项目目录

9、打开浏览器测试结果:

本文完。

将WebApi Host到控制台和IIS的更多相关文章

  1. Using FastCGI to Host PHP Applications on IIS 7 -IIS7 怎么配置 PHP5

    This article describes how to configure the FastCGI module and PHP to host PHP applications on IIS 7 ...

  2. WCF简单使用(分别部署在控制台和IIS上)

    WCF部署到控制台 1.下面通过一个简单的服务示例来认识WCF1.新建项目,名称IBLL,解决方案名称WcfDemo,模板选择类库2.修改Class1.cs文件名称为 IUserInfoService ...

  3. 重温WCF之构建一个简单的WCF(一)(1)通过控制台和IIS寄宿服务

    一.理解什么是WCFWCF就是.NET平台下各种分布式技术的集成,并提供了一套统一的编程接口 二.WCF的定义WCF(Windows Communication Foundation)是微软为构建面向 ...

  4. nginx反向代理后abp的webapi host如何获取客户端ip?

    dotnet core 跨平台是微软伟大的创举,脱离iis后服务器成本都降低了. 问题 这不,采用abp搞了个小项目,部署到centos后发现审计日志里面的ip信息不对. 解决 这个问题在.net 4 ...

  5. asp.net core webapi 似乎未安装在 IIS 中承载 .NET Core 项目所需的 AspNetCoreModule。请尝试修复 Visual Studio 以纠正该问题。

    安装 DotNetCore.1.1.0-WindowsHosting 后,提示如题错误. 解决办法: ASP.NET Core 应用程序运行,可以选择 IIS Express 也可以选择 自己运行 , ...

  6. [Powershell]发布基于.NET Framework的WebAPI和Job控制台程序项目

    获取要发布的定时计划任务. 禁用和停止定时计划任务. 批量强制结束Job进程. 打印定时计划任务状态. 备份项目文件夹. 发布项目文件夹. 删除部署包. 启用定时计划任务. <# .NOTES ...

  7. 插件式WebApi服务及自动生成Api帮助文档

    上一篇博客中,讲到了将WebApi Host到控制台和IIS,本篇总结一下如何将WebApi的Service以插件的形式进行动态部署,并设置Hoster的首页显示Api帮助文档,当然,也包括动态部署进 ...

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

    上篇:webapi快速框架搭建-创建项目(一) 在"创建项目(一)"这一篇里已经创建了一个空的项目,但项目上什么都没有,本篇描述如何将webapi配置成部署在iis上. 步骤 用n ...

  9. Core WebApi项目快速入门(一):环境部署

    1.WebApi新建与部署 1.1 新建Core WebApi工程 1.2 部署 1.2.1 IIS部署 首先以文件方式发布应用程序,然后下载依赖.net core运行时及host安装包 在iis中看 ...

随机推荐

  1. C# DataTable 转换成JSON数据

    原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...

  2. Visual Studio 2010 单元测试之一---普通单元测试

    原文:Visual Studio 2010 单元测试之一---普通单元测试 本文以Visual Studio 2010为例,来介绍如何在Visual Studio里面进行单元测试. 首先来介绍普通单元 ...

  3. 开发者需要了解的WebKit

    2013-3-22 22:37| 发布者: sxwgf| 查看: 575| 评论: 0|来自: infoq 摘要: Paul Irish是著名的前端开发工程师,同时他也是Chrome开发者关系团队成员 ...

  4. C# 语言的两个html解析器

    基于C# 语言的两个html解析器   基于C# 语言的两个html解析器 1)Html Agility Pack http://nsoup.codeplex.com/ 代码段示例: HtmlDocu ...

  5. javascript脚本化文档

    1.getElememtById /** * 获取指定id的的元素数组 */ function getElements(/*ids...*/) { var elements = {}; for(var ...

  6. ASP.NET MVC进阶

    ASP.NET MVC进阶 一.ASP.NET MVC中的AJAX应用 首先,在ASP.NET MVC中使用自带的ajax功能,必须要导入2个js文件(顺序不能颠倒): ASP.NET MVC提供了2 ...

  7. Windows Live Writer 完成开源并推出开源分支

    原文:Announcing Open Live Writer - An Open Source Fork of Windows Live Writer Windows Live Writer是一款发布 ...

  8. iOS基础 - 手势识别 与 手势说明

    一.使用手势识别的四个步骤 1> 实例化手势识别 - (id)initWithTarget:(id)target action:(SEL)action; 2> 设置手势识别属性 3> ...

  9. Salt状态管理

    Salt状态管理   前言 上一篇文章概括性的介绍了Salt的用途和它的基本组成和实现原理,也深入的的介绍了Salt的命令编排和批量执行,但是对于状态管理只是简单的介绍了一下,因为状态管理是一个比较重 ...

  10. oracle数据库管理--对象、角色相关查询

    1.数据字典:     记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有用户者为sys用户.用户只能在数据字典上执行查询操作(select语句),而其维护与修改是由系统自动完成的.数据字 ...