使用RpcLite构建SOA/Web服务(Full .Net Framework)
使用RpcLite构建SOA/Web服务(Full .Net Framework)
SOA框架系列
2. 使用RpcLite构建SOA/Web服务(Full .Net Framework)
继前一篇文章《使用RpcLite构建SOA/Web服务》已过去好几个月。在这几个月里对RpcLite作了很多修改如:.Net Core的支持、Fluent API方式配置、Monitor、Filter等功能。
前一篇文章介绍了使用RpcLite的基本用法,在文章中介绍的配置方式为配置文件使用起来比较麻烦。本文配置使用Fluent API方式,在.Net Core中可以完全不使用配置文件,在Asp.Net中仅需要添加一个HttpModule。
创建服务端
Full .Net Framework中现只支持Host到ASP.NET中。
创建服务包括以下步骤:
- 创建Web Application工程
- 添加RpcLite引用
- Web.config添加RpcHttpModule
- 创建服务契约接口
- 通过实现服务契约接口创建服务类
- 在Global.asax中初始化RpcLite
创建Web Application工程
- 打开Visual Studio 2015
- 打开菜单File ‣ New ‣ Project...
- 在左边的菜单中选择 Templates ‣ Visual C# ‣ Web
- 在项目类型中选择 ASP.NET Web Application (.Net Framework)
- 确保目标Framework版本为 .NET Framework 4.0 或更高
- 填写项目名称HelloRpcLiteService点Ok
添加RpcLite引用
添加引用有两种方式:直接下载dll然后引用、通过NuGet添加,其中通过NuGet添加简单方便,本文以此方式为例。 通过NuGet添加也有两种方式:图形界面或命令行
命令行
- 打开菜单Tools ‣ NuGet Package Manager ‣ Package Manager Console
- 运行 Install-Package RpcLite
图形界面
- 在Solution Explorer中右击HelloRpcLite,选择Manage NuGet Packages...
- 在NuGet页面中选择Browse Tab页,然后搜索RpcLite
- 在搜索结果中安装RpcLite
Web.config添加RpcHttpModule
在configuration/system.webServer节点下添加 <add name=”RpcLite” type=”RpcLite.Service.RpcHttpModule, RpcLite.NetFx” />
完整配置如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<modules>
<add name="RpcLite" type="RpcLite.Service.RpcHttpModule, RpcLite.NetFx" />
</modules>
</system.webServer>
</configuration>
创建服务契约接口
- 新建类文件IProductService.cs
- 输入以下内容
namespace HelloRpcLiteService
{
public interface IProductService
{
string GetDateTimeString();
}
}
通过实现服务契约接口创建服务类
- 新建类文件ProductService.cs
- 输入以下内容
using System; namespace HelloRpcLiteService
{
public class ProductService : IProductService
{
public string GetDateTimeString()
{
return DateTime.Now.ToString();
}
}
}
在Global.asax中初始化RpcLite
- 向工程中添加Global.asax
- 在Application_Start函数中添加初始化代码
using System;
using RpcLite.Config; namespace HelloRpcLiteService
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RpcInitializer.Initialize(builder => builder
.UseService<ProductService>("ProductService", "api/service/")
.UseServicePaths("api/")
);
}
}
}
说明
- UseService<ProductService>(“ProductService”, “api/service/”)是添加一个服务 泛型参数ProductService为服务提供类, 第一个参数”ProductService”为服务名 “api/service/”为服务相对于当前WebApplication根的地址,例如WebApplication地址为http://localhost:8080则服务地址为http://localhost:8080/api/service/。若服务部署到虚拟目录下如http://localhost:8080/app1则服务地址为http://localhost:8080/app1/api/service/
- UseServicePaths(“api/”)指定服务地址的前缀,以此地址开始的所有Url都会被认为是RpcLite服务,UseService中使用的路必需在ServicePaths中。若没有配置此选项则不能正常访问服务。
运行
- F5运行WebApplication,在浏览器中查看地址,假设是http://localhost:11651
- 在浏览器访问http://localhost:11651/api/service/GetDateTimeString,可看到返回的内容是当前日期
- 在浏览器访问http://localhost:11651/api/service/可以看到当前服务的信息,服务名及所有接口名
Service Name: ProductService
Actions:
String GetDateTimeString();
通过RpcLite客户端、JavaScript就可以访问这个服务了。
本文代码地址 https://github.com/aolyn/rpclite.docs/tree/master/samples/HelloRpcLite/src/HelloRpcLiteService
也可直接下载zip包:https://codeload.github.com/aolyn/rpclite.docs/zip/master
QQ群:364617712
欢迎加入
联系方式
使用RpcLite构建SOA/Web服务(Full .Net Framework)的更多相关文章
- 使用RpcLite构建SOA/Web服务
使用RpcLite构建SOA/Web服务 SOA框架系列 1. 使用RpcLite构建SOA/Web服务 提到Web服务最先想到的就是WebService此外常用的还有WCF.ServiceStack ...
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
原文地址:http://www.ibm.com/developerworks/cn/web/wa-restful/ 简介: Spring,构建 Java™ 平台和 Enterprise Edition ...
- 用于构建 RESTful Web 服务的多层架构
作者:Bruce Sun, Java 架构师, IBM 出处:http://www.ibm.com/developerworks/cn/web/wa-aj-multitier/ 用于构建 RESTfu ...
- 基于IIS构建Pyathon Web服务
本文简单叙述了在Windows下,如何利用IIS构建Python Web服务. 其主要步骤如下: 1.在IIS下构建一个站点,如图: 2.配置Python文件的处理程序,如图: 3.最后,在对应站点根 ...
- Guzzle – 构建 RESTful Web 服务的 PHP HTTP 框架
Guzzle 减轻了发送 HTTP 请求和创建 Web 服务客户端的痛苦.它包含建立一个强大的网络服务客户端的工具,包括:服务描述定义的输入和输出的 API,资源迭代器遍历分页资源,尽可能有效地发送大 ...
- WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)
转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...
- SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
- 基于jersey和Apache Tomcat构建Restful Web服务(二)
基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西 ...
- 基于jersey和Apache Tomcat构建Restful Web服务(一)
基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...
随机推荐
- PythonNET网络编程4
本地套接字 Linux 文件 b(块设备文件) c(字符设备文件) d(目录) -(普通文件) l(链接) s(套接字) p(管道) 作用:用于本地不同的程序间进行通信 创建流程 创建本地套接字 so ...
- 页面事件(Init,Load,PreRender)执行顺序
简介 对由 Microsoft® Internet 信息服务 (IIS) 处理的 Microsoft® ASP.NET 页面的每个请求都会被移交到 ASP.NET HTTP 管道.HTTP 管道由一系 ...
- Fragment Summary 2/2
出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API ...
- 【Eclipse提高开发速度-插件篇】Checkstyle的使用
1.CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发者遵守某些编码规范的工具. CheckStyle提供了大部分功能都是对于代码规范的检查 CheckStyle检验 ...
- 每日技术总结:setInterval,setTimeout,文本溢出,小程序,wepy
前言: 项目背景:vue,电商,商品详情页 1.倒计时,倒计到0秒时停止 data () { return { n: 10 } }, created () { let int = setInterva ...
- [Angular2 Router] Preload lzay loading modules
From router v3.1.0, we have preloading system with router. PreloadAllModules After the init module l ...
- 一次性能优化将filter转换
有一条SQL性能有问题,在运行计划中发现filter.遇到它要小心了,类似于nestloop.我曾经的blog对它有研究探索运行计划中filter的原理.用exists极易引起filter. 优化前: ...
- 怎样cp文件夹时忽略指定的文件夹和文件
在备份ltedecoder程序时,须要把此文件夹拷由到bak文件夹下.但decoder文件夹下有个大文件,不须要备份,还有日志问题,也不须要备份,怎样实现呢?? 方法: cd /source-dir ...
- 关于Android中设置闹钟的相对比较完善的解决方案
我当时说承诺为大家写一个,一直没空,直到最近又有人跟我要,我决定抽时间写一个吧.确实设置闹钟是一个比较麻烦的东西.我在这里写的这个demo抽出来了封装了一个类库,大家直接调用其中的设置闹钟和取消闹钟的 ...
- swift学习:自定义Log
import UIKit /* 总结:1:let file = (#file as NSString).lastPathComponent,#file获取的是打印所在的文件 的全路径,转成NSStri ...