C# ASP.NET WebApi服务器搭建详解 - IIS服务承载(IIS Hosting IIS宿主)
C# ASP.NET WebApi服务器搭建详解 - IIS服务承载(IIS Hosting IIS宿主)
5. 在Project CSFramework.WebAPI.Demo.IISHosting 右键,管理NuGet程序包,添加以下包:
9. 添加控制器,开发API接口
10. CSFramework.WebAPI.Demo.Core项目网站目录结构
C# ASP.NET WebApi服务器搭建操作步骤:
1. 创建VS解决方案,首先讲解基于IIS服务承载(IIS Hosting IIS宿主)的WebApi服务器。
下图为本示例完整解决方案。
2. 在VS内添加新项目,选择ASP.NET Web应用程序。
输入项目名称:CSFramework.WebAPI.Demo.IISHosting
3. ASP.NET 模板,选择Empty空模板。
4. 在新建项目Project右键添加全局应用程序类 Global.asax文件。
打开Global.asax文件,Application_Start时间输入以下源码:
C# Code:
protected void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
System.Web.Mvc.AreaRegistration.RegisterAllAreas();
System.Web.Http.GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
protected void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
System.Web.Mvc.AreaRegistration.RegisterAllAreas();
System.Web.Http.GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.Mvc" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.Razor" version="3.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.7" targetFramework="net452" />
<package id="Microsoft.AspNet.WebPages" version="3.2.7" targetFramework="net452" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" />
<package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net452" developmentDependency="true" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net452" />
</packages>
packages.config 文件内容:
6. 修改生成输出目录,改为【..\debug】。
VS解决方案所有项目(Project)都统一改为【..\debug】,方便管理程序文件,以及部署和发布。
7. 创建CSFramework.WebAPI.Demo.Core 类库项目
在VS解决方案添加类库项目(DLL文件类库),省略。。。。
8. 添加WebApi配置(WebApi路由以及JSON序列化配置)
C# Code:
public class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服务
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
GlobalConfiguration.Configuration.Formatters.Insert(0, new PlainTextTypeFormatter());
config.Formatters.Remove(config.Formatters.XmlFormatter);
// 解决json序列化时的循环引用问题
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
// 对 JSON 数据使用混合大小写。驼峰式,但是是javascript 首字母小写形式.
//config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
// 对 JSON 数据使用混合大小写。跟属性名同样的大小.输出
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new UnderlineSplitContractResolver();
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
public class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服务
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
GlobalConfiguration.Configuration.Formatters.Insert(0, new PlainTextTypeFormatter());
config.Formatters.Remove(config.Formatters.XmlFormatter);
// 解决json序列化时的循环引用问题
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
// 对 JSON 数据使用混合大小写。驼峰式,但是是javascript 首字母小写形式.
//config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
// 对 JSON 数据使用混合大小写。跟属性名同样的大小.输出
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new UnderlineSplitContractResolver();
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
C# Code:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//routes.MapRoute(
// name: "Default",
// url: "api/{controller}/{id}",
// defaults: new { id = UrlParameter.Optional }
//);
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//routes.MapRoute(
// name: "Default",
// url: "api/{controller}/{id}",
// defaults: new { id = UrlParameter.Optional }
//);
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
C# Code:
[RoutePrefix("api/demo")]
public class DemoController : ApiController
{
[HttpGet]
[Route("get")]
public IEnumerable<string> Get()
{
return new string[]
{
"CSFramework.WebAPI.Demo",
"www.csframework.com - C/S框架网",
"www.cscode.net - C/S框架网",
"CSFramework.WebAPI.Demo WebApi服务器作者:孙中吕"
};
}
[HttpGet]
[Route("get1")]
public string Get(int id)
{
return "CSFramework.WebAPI.Demo,GET返回结果:\r\n" + id.ToString();
}
[HttpPost]
[Route("post")]
public string Post(dynamic modelObject)
{
return "CSFramework.WebAPI.Demo,Post返回结果:\r\n" + modelObject.ToString();
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
[RoutePrefix("api/demo")]
public class DemoController : ApiController
{
[HttpGet]
[Route("get")]
public IEnumerable<string> Get()
{
return new string[]
{
"CSFramework.WebAPI.Demo",
"www.csframework.com - C/S框架网",
"www.cscode.net - C/S框架网",
"CSFramework.WebAPI.Demo WebApi服务器作者:孙中吕"
};
}
[HttpGet]
[Route("get1")]
public string Get(int id)
{
return "CSFramework.WebAPI.Demo,GET返回结果:\r\n" + id.ToString();
}
[HttpPost]
[Route("post")]
public string Post(dynamic modelObject)
{
return "CSFramework.WebAPI.Demo,Post返回结果:\r\n" + modelObject.ToString();
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
10. CSFramework.WebAPI.Demo.Core项目网站目录结构
11. 修改生成输出目录,改为【..\debug】。
12. 将CSFramework.WebAPI.Demo.IISHosting项目设为启动项目,按F5运行
13. URL输入:http://localhost:20891/api/demo/get,测试GET API方法:
....本文完....
.NET WebApi开发框架|MVC框架|后端框架|服务端框架-标准版V1.0
适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2015+,C#语言
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2015+,C#语言
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)
CSFramework.WebApi产品介绍:
CSFramework.WebApi是服务端快速开发框架(后端框架),借助ASP.NET WebAPI底层架构的强大编程能力,封装成为可复用的以及可定制开发的服务端软件模板,CSFramework.WebApi提供可复用的软件架构和开发包,为用户快速轻松搭建基于HTTP协议、HTTPS协议以及支持多种客户端(如:APP、B/S、C/S、微信公众号、微信小程序等)各种跨平台移动终端的服务端应用程序。
服务端应用开发、后端接口开发是软件项目重要工作环节,服务端注重业务逻辑、数据处理和数据分析、算法等方面的设计和服务,前端主要体现在用户体验、界面操作和数据采集方面。前端软件系统和后端服务架构共同搭建跨平台大型数据管理应用系统。
服务端应用开发、后端接口开发是软件项目重要工作环节,服务端注重业务逻辑、数据处理和数据分析、算法等方面的设计和服务,前端主要体现在用户体验、界面操作和数据采集方面。前端软件系统和后端服务架构共同搭建跨平台大型数据管理应用系统。
扫一扫加微信:
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网