※IDC知识库搜索

当前位置: 服务器托管 > IT学院 > 操作系统 >

托管(2)

Win98系统:c:\Windows c:\Windows\system Winnt和Win2000系统:c:\Winntc:\Winnt\system32 Winxp系统:c:\Windows c:\Windows\system32 system.serviceModel services service name = MyNamespace.MyServ

    Win98系统:c:\Windows  c:\Windows\system
    Winnt和Win2000系统:c:\Winntc:\Winnt\system32
    Winxp系统:c:\Windows  c:\Windows\system32    


<system.serviceModel>
<services>
<service name = "MyNamespace.MyService">
...
</service>
</services>
</system.serviceModel>


自托管

所谓自托管(Self-Hosting) ,就是由开发者提供和管理宿主进程的生命周期。自托管方式适用于如下场景:需要确定客户端与服务之间的进程(或机器)边界时;使用进程内托管,即服务与客户端处于相同的进程中时。进程可以是任意的Windows进程,例如Windows窗体应用程序、控制台应用程序或Windows NT服务。注意,进程必须在客户端调用服务之前运行,这意味着通常必须预先启动进程。但NT服务或进程内托管不受此限制。宿主程序的实现只需要简单的几行代码,就能够实现IIS托管的一部分特性。 

与IIS托管相似,托管应用程序的配置文件(App.Config)必须列出所有希望托管和公开的服务类型: <system.serviceModel>    <services>       <service name = "MyNamespace.MyService">          ...       </service>    </services> </system.serviceModel>  此外,宿主进程必须在运行时显式地注册服务类型,同时为客户端的调用打开宿主,因此,我们才要求宿主进程必须在客户端调用到达之前运行。创建宿主的方法通常是在Main()方法中调用ServiceHost类。ServiceHost类的定义如例1-3所示。

例1-3:ServiceHost类  public interface ICommunicationObject {    void Open();    void Close();    //更多成员 } public abstract class CommunicationObject : ICommunicationObject {...} public abstract class ServiceHostBase : CommunicationObject,IDisposable,... {...} public class ServiceHost : ServiceHostBase,... {    public ServiceHost(Type serviceType,params Uri[] baseAddresses);    //更多成员 }

创建ServiceHost对象时,需要为ServiceHost的构造函数提供服务类型,至于默认的基地址则是可选的。可以将基地址集合设置为空。如果提供了多个基地址,也可以将服务配置为使用不同的基地址。ServiceHost拥有基地址集合可以使得服务能够接收来自于多个地址和协议的调用,同时只需要使用相对的URI。注意,每个SeriviceHost实例都与特定的服务类型相关,如果宿主进程需要运行多个服务类型,则必须创建与之匹配的多个ServiceHost实例。在宿主程序中,通过调用Open()方法,可以允许调用传入;通过调用Close()方法终结宿主实例,完成进程中的调用。此时,即使宿主进程还在运行,仍然会拒绝客户端的调用。而在通常情况下,执行关闭操作会停止宿主进程。例如,在Windows窗体应用程序中托管服务:


北京双线机房 北京双线服务器 北京双线主机托管 北京双线托管 服务器托管 托管服务器
关于我们| 招聘信息| 联系我们| 付款方式| 网站地图 |友情链接 | 云计算服务平台 | 在线工单系统
咨询热线:010-82894410/82894420  7×24小时技术支持:13811155188 15811155188
传真:010-82894410转607  客服传真:010-82894410转607   京ICP证090528号 京ICP备09042719号 公安局备案编号:1101083278 
Copyright© 2006-2010 东方瑞庭(TopServers) 版权所有