.Net Remoting配置文件的用法

<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
<iframe align="right" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog02.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

How to use .Net Remoting Configuration files

.NET Remoting configuration files allow you to specify parameters for most aspects of the remoting framework. These files can define tasks as simple as registering a channel and specifying a Type as a server-activated object, or can be as complex as defining a whole chain of IMessageSinks with custom properties.

通过.Net Remoting配置文件可以为Remote Objects设定许多参数,如ChannelSAO服务端激活对象类型(Singleton/SingleCall)等等,方便以后在不用修改代码或重新编译的情况下,改变Remote Objects的行为。

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 FormWindows Services下时(上面的配置文件channel需要设置port属性),相应Server端声明Remote Objects的代码可以简化为:

string filename = "server.exe.config";

RemotingConfiguration.Configure(filename);

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

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

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

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

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><p></p></assembly></class></namespace>

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

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

同时,Clientapplication调用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><p></p></configuration>

<system.runtime.remoting><p></p></system.runtime.remoting>

<application><p></p></application>

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

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

<service></service>

<client></client>

简单说明:

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

<service><p></p></service>

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

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

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

<client><p></p></client>

<wellknown></wellknown>

<activated></activated>

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

NoteWhen using CAOs from more than one server, you have to create several <client> properties in your configuration file.<p></p></client>

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

<client url="http://localhost/MyServer&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=" msonormal style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><span style="mso-spacerun: yes"> </span><activated type="Server.MyRemote, Client"></activated><p></p></span></client>

4,定制Client/Server Channel元素

1Client Side

channel ref="http">

clientProviders>

formatter ref="binary" />

clientProviders>

channel>

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

2Server Side

channel ref="http">

serverProviders>

provider ref="wsdl" />

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

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

serverProviders>

channels>

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

1. Ingo Rammer, Advanced .Net Remoting.

2. MSDN



Reference:



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1793959


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值