C#中Remoting的使用

  • 我使用Remoting的时候是使用配置文件的所以我这边就说下如何配置一个Remoting项目

我使用Remoting的时候是使用配置文件的所以我这边就说下如何配置一个Remoting项目

1.服务端配置

1).IIS发布
在D盘下新建一个文件夹Retire ,下面新建一个bin文件夹和web.comfig的配置文件,因为我是纯配置文件配置的所以注册消息通道比较方便,只不过要配置的时候稍微麻烦一点。

IIS中新建网站

2).新建网站成功后把要远程使用的DLL文件拷贝到D:\Retire\bin下面
打开D:\Retire下面的web.config配置文件,我们来写配置
代码如下:web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.runtime.remoting><application><channels><channel ref="http"><serverProvider><formatter ref="binary" typeFileterLevel="Full" /><formatter ref="soap" typeFileterLevel="Full" /><Provider ref="wsdl" /></serverProvider></channel></channels><service><wellknown type = "RetireManager.BLL.TFileattachmentBLL,RetireManager.BLL" objectUri = "TFileattachmentService.soap" mode = "SingleCall" /><wellknown type="RetireManager.BLL.TFileinformationBLL,RetireManager.BLL" objectUri="TFileinformationService.soap" mode="SingleCall" /><wellknown type="RetireManager.BLL.TRetirerinformationBLL,RetireManager.BLL" objectUri="TRetirerinformationService.soap" mode="SingleCall" /><wellknown type="RetireManager.BLL.TStaticdataBLL,RetireManager.BLL" objectUri="TStaticdataService.soap" mode="SingleCall" /><wellknown type="RetireManager.BLL.TUserloginformationBLL,RetireManager.BLL" objectUri="TUserloginformationService.soap" mode="SingleCall" /></service></application></system.runtime.remoting><system.webServer><directoryBrowse enabled="true" /></system.webServer>
</configuration>

这里是配置 channel ref=“http” 消息通道
wellknown type = “RetireManager.BLL.TFileattachmentBLL,RetireManager.BLL” objectUri = “TFileattachmentService.soap” mode = “SingleCall” /
这里type是 “程序集.程序集中的类,程序集”
这里objectUri是远程队列路径 这里一定要加 .soap

3).服务器程序集代码

远端程序集代码如下:

namespace RetireManager.BLL
{public partial class TFileattachmentBLL : MarshalByRefObject, TFileattachmentService{public string AAAAA(string str){return "AAAAA" + str;}}
}

2.客户端

服务端配置好后,客户端我们不是直接引用RetireManager.BLL这个程序集的,我们是通过接口引用的。
接口代码如下:

namespace RetireManager.Interface
{public interface TFileattachmentService{string AAAAA(string str);}public static class Service{public static T GetService<T>() {//这里是反射远程地址上面的dll程序集return (T)Activator.GetObject(typeof(T), ConfigurationManager.AppSettings["ServiceURL"]+typeof(T).Name + ".soap"); }}
}

上面代码中 MarshalByRefObject 这个类是必须的,是允许远程访问的类
TFileattachmentService这个是接口代码中的接口类

远端代码我们会生成一下变成一个DLL文件,这个DLL文件就是放在D:\Retire\bin下面的
在D:\Retire文件夹下面加上
wellknown type = “RetireManager.BLL.TFileattachmentBLL,RetireManager.BLL” objectUri = “TFileattachmentService.soap” mode = “SingleCall” 配置就可以生效了

配置完成后

直接在客户端启动

namespace RetireManager
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){//这里是通过RetireManager.Interface这个接口类去承载通过远程地址反射出来的类Interface.TFileattachmentService proc = Interface.Service.GetService<Interface.TFileattachmentService>();string str = proc.AAAAA("123");//返回值 AAAAA123}}
}

客户端的app.config的配置文件中要加上

<appSettings><add key="ServiceURL" value="http://localhost:8080/"/></appSettings>

这个地址在RetireManager.Interface.Service接口的Service方法中会用到

是不是很简单!

注:
这里注意一下,接口类生成的DLL文件服务端和客户端都要引用

关于C#中Remoting的使用相关推荐

  1. GNU Make 使用手册(于凤昌中译版)

    GNU Make 使用手册(中译版) 翻译:于凤昌 GNU make Version 3.79 April 2000 Richard M. Stallman and Roland McGrath 1 ...

  2. Mcad学习笔记之序列化(2进制和Soap序列化)

    相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...

  3. Flex与外部的数据通信

    视频课:https://edu.csdn.net/course/play/7621 本章简介 第3章讲解了视图状态.Flex页面间的跳转.Flex应用的模态窗体.数据绑定.使用拖放,图表等知识.本章将 ...

  4. 和朱晔一起复习Java并发(五):并发容器和同步器

    和朱晔一起复习Java并发(五):并发容器和同步器 本节我们先会来复习一下java.util.concurrent下面的一些并发容器,然后再会来简单看一下各种同步器. ConcurrentHashMa ...

  5. Phenix.NET for WebAPI WF CSLA,企业级、分布式、符合领域建模的OOP软件快速开发平台

    Phenix Framework and Teamwork Tools 20190624 下载地址 : https://download.csdn.net/download/phenixiii/113 ...

  6. 面试:第十二章:所有总结

    Java基础 java基本类型哪些,所占字节 byte :1个字节 short :2个字节 char :2个字节 int :4个字节 long :8个字节 float :4个字节 double :8个 ...

  7. linux内核分析(转自某位大哥网上的笔记)

    启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码.BIOS先进行一系列的系统自检,然后初始化位于地址0的中断 ...

  8. PostSharp的AOP设计在.NET Remoting中的应用

    在.NET Remoting技术中实现用户的验证和授权并不那么容易,尤其是将其宿主在windows service这样的环境中的时候.大部分时候,我们都需要实现自定义的验证方式.具体来说也不是那么复杂 ...

  9. Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop)

    Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop) TechNet Blogs » 喻勇(Frank Yu)的技术博客 » Windows 7中的 ...

  10. remoting 突然出现 服务器遇到内部错误。有关更多信息,请关闭服务器的 .config 文件中的 customErrors。

    在使用C#的Remoting技术开发软件的时候,如果服务端与客户端都在同一台 电脑 上,客户端能够成功获取服务端的错误. 但如果服务端与客户端在二台电脑上的时候,通常客户端获取服务端内部错误的时候,只 ...

最新文章

  1. 竟有如此沙雕的代码注释!
  2. ruby gem install rails 错误解决方法
  3. 数据库-优化-为什么要进行数据库优化
  4. Ubuntu18.04安装Nautilus-actions自定义文件管理器鼠标右键列表
  5. c++面向对象高级编程 学习十一 类模板、函数模板、成员模板
  6. Python读取PDF
  7. 编程范式之字符和基本类型
  8. 反射机制——获取Class中的方法
  9. Python属性使用@property和不使用@property的差别
  10. Metasploit -- 渗透攻击模块(exploit)
  11. selinux基本概念 | 开启selinux策略 | 安全上下文的临时修改 | 安全上下文的永久修改 | 如何修复selinux | selinux对服务功能的影响 | 系统自动排错
  12. Android 动态获取控件的宽高,并动态设置控件宽高
  13. 被遗忘权_继续–被遗忘的声明
  14. python课程回顾复习记录简要6
  15. 查看思科交换机出厂时间
  16. 精选20个高品质的免费素材,可以下载PSD格式
  17. 开放经济的宏观经济学:基本概念 - 异想天开
  18. Go语言学习教程(二)
  19. 1.PWM基本概念了解
  20. 赔1100万美元!谷歌招聘年龄歧视

热门文章

  1. 如何在Arduino上使用OV7670摄像头模块
  2. MYSQL下载及安装完整教程
  3. 联想m7400连接不到计算机,联想m7400打印机怎么连接电脑
  4. eova利用js默认初始查询值查询
  5. el x修改激活的菜单_3d快捷键
  6. Arduino教程 RFID-RC522读IC卡门禁原理及破解防御
  7. java实现远程控制应用
  8. VIVO校招C++岗面经(笔试+一面+二面+Offer)
  9. python打包的exe反编译_反编译python打包的exe到源代码
  10. Linux自学之旅-基础命令(一)