Remoting配置文件的用法

简介: 1,如下是Server端典型的Remoting配置文件: (1)当Remote Objects部署在Console/Windows Form、Windows Services下时(上面的配置...
1,如下是Server端典型的Remoting配置文件:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<system.runtime.remoting>

<application>

<channels>

<channel ref="http"/>

</channels>

<service>

<wellknown mode="Singleton"

type="ComponentHost.CustomerManager, ComponentHost"

objectUri="CustomerManager.soap" />

</service>



</application>

</system.runtime.remoting>

</configuration>



1)当Remote Objects部署在Console/Windows Form、Windows Services下时(上面的配置文件channel需要设置port属性),相应Server端声明Remote Objects的代码可以简化为:

string filename = "server.exe.config";

RemotingConfiguration.Configure(filename);



2)如果Remote Objects部署在IIS时,根本就不需要任何代码声明。但是需要将上述配置文件命名为:web.config,并且将Remote Objects的DLL文件安置在web application的BIN文件夹。



一般在实际应用中,基本上将Remote Objects部署在IIS环境中,好处是(I)不需要编写额外的代码;(II)只要启动机器,远程对象就启动了。不需要你半夜三更跑到公司去登录,然后启动发生故障的远程服务;(III)容易与IIS认证服务进行集成;(IV)可能还有更多优点,我现在没有想到。



3)如果需要声明多个远程对象,只需要在<service>与</service>之间添加相应的Remote Objects配置信息即可。



4)另外需要注意type属性为:<namespace>.<class>, <assembly>



2,如下是Client端典型的配置文件:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<system.runtime.remoting>

<application>



<client>

<wellknown type="ComponentHost.CustomerManager, RemotingTest"

url="http://localhost/ComponentHost/CustomerManager.soap" />

</client>



</application>

</system.runtime.remoting>

</configuration>



要注意type属性的设定:<namespace>.<class>, <assembly>

如果Client通过SoapSuds产生Remote Objects的元数据assembly,或者是Shared Assembly(如Interface或Abstract Class),这里<assembly>则为上述assembly的名称。

如果是通过SoapSuds产生Source code,则<assembly>为Client应用程序名(无exe后缀)。



同时,Client端application调用Remote Objects时,可以省掉:注册通道、Activator.GetObject()/RemotingConfiguration.RegisterActivatedServiceType()等代码,取而代之的代码为:

string filename = “clientApplication.exe.config”;

RemotingConfiguration.Configure(filename);

下面通过new来创建Remote Object实例。



3,标准的.Net Remoting Configuration配置文件

MSDN中有.Net Remoting Configuration file中全部元素/属性的完整的详细说明,需要的时候再查阅了。一般情况下,知道下面这些属性就够用了。

<configuration>

<system.runtime.remoting>

<application>

<lifetime /> ―― 配置Remote Objects生存期的信息

<channels /> ―― 配置与远程对象进行通信的信道

<service />

<client />

</application>

</system.runtime.remoting>

</configuration>



简单说明:

1)<service> ―― 仅在Server端配置

<service>

<wellknown /> ―― 配置要发布的SAO(已知)对象的信息

<activated /> ―― 配置要发布的CAO客户端激活对象的信息

</service>





2)<client> ―― 仅在Client端配置,与Server端<service>对应

<client>

<wellknown />

<activated />

</client>



When using CAOs, the <client> property has to specify the URI to the server for all underlying <activated> entries.

Note:When using CAOs from more than one server, you have to create several <client> properties in your configuration file.

当调用CAO远程对象时,必须设定<client>的url属性。如果CAO来自不同的Server,则需要在配置文件中定义多个<client>。如下所示:

<client url="http://localhost/MyServer>

<activated type="Server.MyRemote, Client" />

</client>




4,定制Client/Server Channel元素

1)Client Side

<channel ref="http">

<clientProviders>

<formatter ref="binary" />

</clientProviders>

</channel>

其中,formatter ref=”binary” or “soap”。formatter ref指要在通道上发送的消息格式,在此示例中为二进制,以增强性能。



2)Server Side

<channel ref="http">

<serverProviders>

<provider ref="wsdl" />

<formatter ref="binary" typeFileterLevel="Full" />

<formatter ref="soap" typeFileterLevel="Full" />

</serverProviders>

</channels>

typeFilterLevel表示当前自动反序列化级别,支持的值包括 Low(默认值)和 Full。


本文转载:http://www.cnblogs.com/rickie/archive/2004/10/10/50392.html

 

目录
相关文章
|
NoSQL 关系型数据库 MySQL
《文档与表格的较量:深入解析MongoDB与传统SQL数据库的关键差异》
【8月更文挑战第13天】在数据时代,选对数据库是确保应用性能与可靠性的关键。MongoDB作为流行NoSQL数据库,以灵活文档结构、高效查询及易于扩展著称,常与传统RDBMS如MySQL对比。MongoDB采用BSON格式存储复杂数据类型,如数组与嵌套文档;MySQL则以严格结构化表格存储数据。查询方面,MongoDB支持嵌套查询,而MySQL需多表连接。MongoDB侧重水平扩展,适用于数据结构多变的应用场景;MySQL则擅长垂直扩展,适合需要复杂事务处理的系统。两者各有优势,选择需基于具体应用需求。
144 1
|
开发框架 .NET C++
『BaGet』带你一分钟搭建自己的私有NuGet服务器
📣读完这篇文章里你能收获到 - 使用BaGet快速搭建Nuget私仓 - 博主带你实操,全程无坑 - 感谢点赞+收藏,避免下次找不到~
894 0
『BaGet』带你一分钟搭建自己的私有NuGet服务器
|
2天前
|
弹性计算 运维 搜索推荐
三翼鸟携手阿里云ECS g9i:智慧家庭场景的效能革命与未来生活新范式
三翼鸟是海尔智家旗下全球首个智慧家庭场景品牌,致力于提供覆盖衣、食、住、娱的一站式全场景解决方案。截至2025年,服务近1亿家庭,连接设备超5000万台。面对高并发、低延迟与稳定性挑战,全面升级为阿里云ECS g9i实例,实现连接能力提升40%、故障率下降90%、响应速度提升至120ms以内,成本降低20%,推动智慧家庭体验全面跃迁。
|
3天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
351 91
|
10天前
|
人工智能 自然语言处理 前端开发
Qoder全栈开发实战指南:开启AI驱动的下一代编程范式
Qoder是阿里巴巴于2025年发布的AI编程平台,首创“智能代理式编程”,支持自然语言驱动的全栈开发。通过仓库级理解、多智能体协同与云端沙箱执行,实现从需求到上线的端到端自动化,大幅提升研发效率,重塑程序员角色,引领AI原生开发新范式。
851 156
|
3天前
|
数据采集 缓存 数据可视化
Android 无侵入式数据采集:从手动埋点到字节码插桩的演进之路
本文深入探讨Android无侵入式埋点技术,通过AOP与字节码插桩(如ASM)实现数据采集自动化,彻底解耦业务代码与埋点逻辑。涵盖页面浏览、点击事件自动追踪及注解驱动的半自动化方案,提升数据质量与研发效率,助力团队迈向高效、稳定的智能化埋点体系。(238字)
257 156
|
4天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~