C# Hessian 接口
简单说来,Hessian是一个轻量级的RPC框架(RPC是什么?请参考这里)。
它基于HTTP协议传输,使用Hessian二进制序列化,对于数据包比较大的情况比较友好。
但是它的参数和返回值都需要实现Serializable接口。
一、C#如何建立Hessian服务器接口?
前置步骤:新建空的web项目 .net FrameWork 4.5或以上
引用——》Hessiancsharp.dll
1.新建接口
namespace HessianService { public interface IService { string Hello(string name); } }
2.实现接口
using hessiancsharp.server; namespace HessianService { public class Service : CHessianHandler, IService { public string Hello(string name) { return "Hello " + name; } } }
3.配置web.config,添加下列节点配置
<system.webServer> <directoryBrowse enabled="true"></directoryBrowse> <handlers> <remove name="HttpPost"/> <remove name="HttpGet"/> <add name="hessian" verb="*" path="*.hessian" type="HessianService.Service, HessianWebService" /> </handlers> </system.webServer>
解释下这一句:<add name="hessian" verb="*" path="*.hessian" type="HessianService.Service, HessianWebService" />
path属性:拦截所有*.hessian结尾的请求
type属性:将所有拦截到的请求重发送到 项目名称HessianWebService下的 命名空间HessianService下的 Service类
二、如何发送Hessian请求?
前置条件:新建控制台程序 【建立在不同的解决方案下】
Hessiancsharp.dll
1.添加需要请求的接口名称,接口名最好与服务端一致【取决于web.config是如何配置的】,但是方法名必须一致
2.实例化CHessianProxyFactory,访问服务端
using System; using hessiancsharp.client; namespace Client { class Program { static void Main(string[] args) { CHessianProxyFactory factory = new CHessianProxyFactory(); string url = "http://localhost:21145/hessiantest.hessian";//修改为你的server端地址 IService test = (IService)factory.Create(typeof(IService), url); string result = test.Hello("World"); Console.WriteLine(result); Console.ReadLine(); } } public interface IService { string Hello(string name); } }
配置完成!
先运行WebServer项目,在保证服务器页面打开的情况下,运行Client。
不出意外的话,可以得到Hello World的返回结果。
基本上是参考:Here
大致没有改动,如果.Net FrameWork版本比较高的话webconfig配置需要改动一下,特此分享一下。代码在下来
下载:Click