• 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



  • 相关阅读:
    左值与右值引用 详解
    MFC---导出 Excel 方法
    Linux怎么读? Linux读音考古一日游
    nginx url自动加斜杠问题
    FileBeats配置应用详解
    nginx配置选项try_files详解
    mongodb副本集集群构建
    平凡主丛上的Yang-Mills理论
    Kneser猜想与相关推广
    Lorenzini:Laplacian与图上的黎曼-罗赫定理
  • 原文地址:https://www.cnblogs.com/tangpeng97/p/13038424.html
Copyright © 2020-2023  润新知