技术开发 频道

一步一步学Remoting:承载方式


【IT168技术文档】

  在实际的应用中我们通常只会选择用windows服务和iis来承载远程对象。选择windows服务的原因是能自启动服务,服务器重启后不需要再去考虑启动service。选择iis的理由是我们能使用集成验证等一些iis的特性。

  可能大家会觉得这个过程将是一个复杂的过程,其实不然,下面说一下实现方法,步骤非常少。

  先来建立远程对象
using System; using System.Data; using System.Data.SqlClient; namespace RemoteObject { public class MyObject:MarshalByRefObject { public DataSet GetData() { SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["strconn"]); SqlDataAdapter da=new SqlDataAdapter("select * from UBI_ProvinceMaster",conn); DataSet ds=new DataSet(); da.Fill(ds); return ds; } } }
  客户端仍然是一个控制台来进行测试:
RemoteObject.MyObject app = (RemoteObject.MyObject)Activator.GetObject(typeof(RemoteObject.MyObject),System.Configuration.ConfigurationSettings.AppSettings["ServiceURL"]); DataTable dt=app.GetData().Tables[0]; foreach(DataRow dr in dt.Rows) { Console.WriteLine(dr["iPrMId"]+" "+dr["vPrMName"]); } Console.ReadLine();
  服务端配置文件:
<configuration> <appSettings> <add key="strconn" value="server=(local);uid=sa;pwd=;database=UBISOFT" /> </appSettings> <system.runtime.remoting> <application name="RemoteServer"> <service> <wellknown type="RemoteObject.MyObject,RemoteObject" objectUri="RemoteObject.MyObject" mode="SingleCall" /> </service> <channels> <channel ref="tcp" port="9999"/> </channels> </application> </system.runtime.remoting> </configuration>
0
相关文章