关于C#中Remoting的使用
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的使用相关推荐
- GNU Make 使用手册(于凤昌中译版)
GNU Make 使用手册(中译版) 翻译:于凤昌 GNU make Version 3.79 April 2000 Richard M. Stallman and Roland McGrath 1 ...
- Mcad学习笔记之序列化(2进制和Soap序列化)
相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...
- Flex与外部的数据通信
视频课:https://edu.csdn.net/course/play/7621 本章简介 第3章讲解了视图状态.Flex页面间的跳转.Flex应用的模态窗体.数据绑定.使用拖放,图表等知识.本章将 ...
- 和朱晔一起复习Java并发(五):并发容器和同步器
和朱晔一起复习Java并发(五):并发容器和同步器 本节我们先会来复习一下java.util.concurrent下面的一些并发容器,然后再会来简单看一下各种同步器. ConcurrentHashMa ...
- Phenix.NET for WebAPI WF CSLA,企业级、分布式、符合领域建模的OOP软件快速开发平台
Phenix Framework and Teamwork Tools 20190624 下载地址 : https://download.csdn.net/download/phenixiii/113 ...
- 面试:第十二章:所有总结
Java基础 java基本类型哪些,所占字节 byte :1个字节 short :2个字节 char :2个字节 int :4个字节 long :8个字节 float :4个字节 double :8个 ...
- linux内核分析(转自某位大哥网上的笔记)
启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码.BIOS先进行一系列的系统自检,然后初始化位于地址0的中断 ...
- PostSharp的AOP设计在.NET Remoting中的应用
在.NET Remoting技术中实现用户的验证和授权并不那么容易,尤其是将其宿主在windows service这样的环境中的时候.大部分时候,我们都需要实现自定义的验证方式.具体来说也不是那么复杂 ...
- Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop)
Windows 7中的远程桌面增强(Graphics Remoting, Remote Desktop) TechNet Blogs » 喻勇(Frank Yu)的技术博客 » Windows 7中的 ...
- remoting 突然出现 服务器遇到内部错误。有关更多信息,请关闭服务器的 .config 文件中的 customErrors。
在使用C#的Remoting技术开发软件的时候,如果服务端与客户端都在同一台 电脑 上,客户端能够成功获取服务端的错误. 但如果服务端与客户端在二台电脑上的时候,通常客户端获取服务端内部错误的时候,只 ...
最新文章
- 竟有如此沙雕的代码注释!
- ruby gem install rails 错误解决方法
- 数据库-优化-为什么要进行数据库优化
- Ubuntu18.04安装Nautilus-actions自定义文件管理器鼠标右键列表
- c++面向对象高级编程 学习十一 类模板、函数模板、成员模板
- Python读取PDF
- 编程范式之字符和基本类型
- 反射机制——获取Class中的方法
- Python属性使用@property和不使用@property的差别
- Metasploit -- 渗透攻击模块(exploit)
- selinux基本概念 | 开启selinux策略 | 安全上下文的临时修改 | 安全上下文的永久修改 | 如何修复selinux | selinux对服务功能的影响 | 系统自动排错
- Android 动态获取控件的宽高,并动态设置控件宽高
- 被遗忘权_继续–被遗忘的声明
- python课程回顾复习记录简要6
- 查看思科交换机出厂时间
- 精选20个高品质的免费素材,可以下载PSD格式
- 开放经济的宏观经济学:基本概念 - 异想天开
- Go语言学习教程(二)
- 1.PWM基本概念了解
- 赔1100万美元!谷歌招聘年龄歧视