Light  Rain serena

«December 2025»
123456
78910111213
14151617181920
21222324252627
28293031


公告

期待

超级好友 Rachel


我的分类(专题)

首页(262)
知识积累(40)
乐瑟温柔(108)
经验杂谈(20)
良辰吉日(2)
杂七杂八(57)
天景共赏(10)
感触文字(23)


最新日志
sunshine girl
过云雨
summer whisper
边走边唱
岛歌
不必在乎我是谁
如果有来生
Fing Fing 下
大明宫
我没有魅力

最新回复
回复:边界类、控制类、实体类
回复:边界类、控制类、实体类
回复:边界类、控制类、实体类
回复:《极地特快》插曲《When Chr
回复:边界类、控制类、实体类
回复:不必在乎我是谁
回复:边界类、控制类、实体类
回复:如果有来生
回复:Fing Fing 下
回复:我没有魅力

留言板
签写新留言

老大&老师,我想你.....
好文好多阿
886电台 好听
cai
您的子域名已开通
hi
祝福
祝福

你好

统计
blog名称:小雨
日志总数:262
评论数量:1273
留言数量:15
访问次数:4701601
建立时间:2005年1月8日

链接

有事?
音乐,永不厌倦
宁静的心情驿站
我的声音
TIPOblog
tipo bbs
appleVB
网页设计
英语学习2
英语学习3
FLASH
网络书籍
网络电台



我的博客朋友
最有技术的blog
xenium
花差花差
瓜少
span
a lai
琦少
陈少
v
阿当
http://www.ypb.cc/
痞子若鱼
另一个同行
年轻人bcims

 




W3CHINA Blog首页    管理页面    写新日志    退出

[经验杂谈]iis 承载 远程组建
小雨 发表于 2007/1/4 16:45:18

组件不可以单独运行,必须要别的程序或者服务像容器一样包含它,才可以被使用,我们可以自己编写服务端,也可以把组件放在 已经有的服务中例如IIS或者windows服务。 1 建立一个web应用程序,删除里面的所有的webform文件,加入一个类,代码如下 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 Orders",conn);    DataSet ds=new DataSet();    da.Fill(ds);    return ds;   }  } }  2  修改web.config <?xml version="1.0" encoding="utf-8" ?><configuration>       <appSettings>             <add key="strconn" value="server=.;uid=sa;pwd=;database=northwind" />     </appSettings>     <system.runtime.remoting>         <application >             <service>                 <wellknown type="RemoteObject.MyObject,WebApplication1" objectUri="RemoteObject.MyObject.soap"                     mode="SingleCall" />             </service>             <channels>                 <channels>                 <channel ref="http"                name="MyChannel"                priority="100"                />             </channels>             </channels>         </application>     </system.runtime.remoting> </configuration> type="RemoteObject.MyObject,WebApplication1" 分别是类型 命名空间.类名,程序集名称 objectUri="RemoteObject.MyObject.soap" 客户端访问的服务名 写好了可以测试一下http://localhost/WebApplication1/RemoteObject.MyObject.soap?wsdl 这里的WebApplication1不是程序集的名字而是虚拟目录的名字 3写客户端 采用控制台模式 using System;using System.Data; using System.Data.SqlClient; using System.Configuration;namespace ConsoleApplication1{ /// <summary> /// Class1 的摘要说明。 /// </summary> class Class1 {  /// <summary>  /// 应用程序的主入口点。  /// </summary>  [STAThread]  static void Main(string[] args)  {   string s=ConfigurationSettings.AppSettings.Get("ServiceURL");   System.Console.WriteLine (s);   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[0]+" "+dr[1]);    }    Console.ReadLine();   } }}这里的服务端url 我们写在客户端的配置文件里面,配置文件有以下几个要求 • 1  配置文件以 XML 格式保存。 请确保您按照所有 XML 语法规则。 记住, XML 是区分大小写。 如果不正确 XML, 或者拼错元素, 您收到一个 System.Configuration.Configuration 异常。 例如, 作为 < AppSettings > > < appSettings 节显示如果您添加 < 添加 > 元素与一个大写 " K " 代替 " k, " 小写的关键属性或 " a "), 代替小写大写 " A " 与您收到错误信息 (。 • 2  将配置文件必须保存与其相关应用程序位于同一文件夹。 • 为配置文件名称必须使用下列语法: ApplicationName ApplicationType .config。 其中 ApplicationName 是应用程序, ApplicationType 的名称是种应用程序 (例如, .exe), 和是需要后缀 .config。 这里我的配置文件名字为ConsoleApplication1.exe.config 内容为 <?xml version="1.0" encoding="utf-8" ?><configuration><appSettings>             <add key="ServiceURL" value="http://localhost/WebApplication1/RemoteObject.MyObject.soap" />     </appSettings>    </configuration> ***如果不从WEB.CONFIG里面设置,可以编程方式实现 但只能写在Global.asax.CS里面, protected void Application_Start()  {   IDictionary props = new Hashtable();   props["name"] = "MyChannel";   props["priority"] = "100";      // Null entries specify the default formatters.   HttpChannel channel = new HttpChannel(    props,     null,     null    );   ChannelServices.RegisterChannel(channel);   WellKnownServiceTypeEntry WKSTE = new WellKnownServiceTypeEntry(    "RemoteObject.MyObject",    "WebApplication2",     "RemoteObject.MyObject.soap" ,    WellKnownObjectMode.SingleCall    );   RemotingConfiguration.RegisterWellKnownServiceType(WKSTE);  }

阅读全文(3304) | 回复(0) | 编辑 | 精华


发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.734 second(s), page refreshed 144804188 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号