代码之家  ›  专栏  ›  技术社区  ›  Andreas Grech

什么是服务主机?

  •  37
  • Andreas Grech  · 技术社区  · 15 年前

    由于我目前正在学习使用WCF服务,我经常在互联网上遇到一些教程,其中提到使用 ServiceHost 使用WCF服务时。

    这到底是什么 服务宿主 ?


    在我当前的项目中,我正在使用一个wcf服务,并从我的应用程序中引用它,每当我想从我的应用程序中使用它时,我只是实例化它 ServiceClient 像这样:

    new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);
    

    然后访问我的Web方法( OperationContract s)从该实例(显然,在使用方法之前打开它,然后用 Open Close )

    我的WCF服务是我的IIS中的主机,我只访问 .svc 从我的应用程序实例化 维修工 .

    所以为什么在哪里 服务宿主 用过了吗?

    2 回复  |  直到 8 年前
        1
  •  31
  •   Stacked Emily M    8 年前

    ServiceHost基本上为您提供了在非IIS或正在设置中承载WCF服务所需的一切。服务主机的常见位置是控制台应用程序或Windows服务。请参阅来自msdn的示例代码 how to setup a ServiceHost in a console app .

        2
  •  25
  •   marc_s    15 年前

    您的服务实现只是一个.NET类—您需要为它提供一个运行时环境,以便可以以某种方式执行它。这就是服务主机的作用——它将加载您的服务类,设置端点和通道侦听器以及所有这些东西,从而为您的服务类提供一个“生态系统”来生活和操作。

    您可以在控制台应用程序、Windows服务甚至WinForms应用程序中自己实例化ServiceHost类,从而使您的WCF服务类对外部世界可用,也可以将该工作委托给IIS或WAS。即使是IIS或WAS也会使用ServiceHost来承载您的WCF服务——它们只是在后台自动执行,并在收到请求时“按需”执行。

    马克

    推荐文章