Hero is coming back

风吹呀吹

风会指引你前进的方向

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



 

posted @ 2020-06-03 16:34  风吹呀吹  阅读(406)  评论(0编辑  收藏  举报