使用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架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...
随机推荐
- 软件——机器学习与Python,Python3的输出与输入
输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print('hello, world') p ...
- django 简单会议室预约(2)
--我们先打开settings.py 配置文件: import os #指明django APP目录路径 BASE_DIR = os.path.dirname(os.path.dirname(os.p ...
- C#中对XML的操作
现在有一个xml文件,名称:BookStore.xml,数据如下: <?xml version="1.0" encoding="gb2312"?>& ...
- 全然用linux工作,放弃windows
按: 虽然我们已经不习惯看长篇大论, 但我还是要说, 这是一篇值得你从头读到尾的长篇文章. 2005年9月22日,清华在读博士生王垠在水木社区BLOG上发表了<清华梦的粉碎--写给清华大学的退学 ...
- 微信小程序常见的UI框架/组件库总结
想要开发出一套高质量的小程序,运用框架,组件库是省时省力省心必不可少一部分,随着小程序日渐火爆,各种不同类型的小程序也渐渐更新,其中不乏一些优秀好用的框架/组件库. 1:WeUI 小程序–使用教程 h ...
- js进阶 12-13 jquery中one方法和trigger方法如何使用
js进阶 12-13 jquery中one方法和trigger方法如何使用 一.总结 一句话总结: 1.one()方法和on()方法的区别是什么? 除了one()只执行一次,其它和on()一模一样,包 ...
- 支付宝支付返回通知时 notify_url和return_url的选择
页面跳转同步通知页面特性(return_url特性) 买家在支付成功后会看到一个支付宝交易提示成功的页面,该页面会停留几秒,然后会自动跳转回商户指定的同步通知页面(参数return_url) 该页面中 ...
- 将html转换为word文档的几种方式
1 基于wps直接将页面信息下载成word文档 public void test() { WPS.Application wps = null; try { wps = new WPS.Applica ...
- STATUS CODE: 91, occurs when trying to move media from one volume pool to another.
Overview:Symantec NetBackup (tm) will not allow a tape with active images to be moved from one volum ...
- [Yarn] Use Yarn to Create an Alternative Import Name of an Installed Library
In this lesson we'll show how to use yarn to alias the names of same npm libraries but install diffe ...