WCF:什么是ServiceHost?
-
03-07-2019 - |
题
由于我目前正在学习使用WCF服务,因此在使用WCF服务时,我经常遇到使用 ServiceHost
的互联网教程。
这个 ServiceHost
究竟是什么?
在我当前的项目中,我正在使用WCF服务并从我的应用程序中引用它,每当我想从我的应用程序中使用它时,我只是实例化其 ServiceClient
,如下所示:
new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);
然后从该实例访问我的Web方法( OperationContract
)(显然在使用该方法之前打开它,然后使用 Open
和 Close <关闭它/代码>)
我的WCF服务是我的IIS中的主机,我只是从我的应用程序访问 .svc
来实例化 ServiceClient
。
那么为什么以及 ServiceHost
在哪里使用?
解决方案
ServiceHost基本上为您提供在非IIS或WAS设置中托管WCF服务所需的一切。 ServiceHost的常见位置是控制台应用程序或Windows服务。有关如何在a中设置ServiceHost,请参阅MSDN中的示例代码控制台应用。
其他提示
您的服务实现只是一个.NET类 - 您需要有一个运行时环境,因此它可以以某种方式执行。这就是ServiceHost的用途 - 它将加载您的服务类,设置端点和通道监听器以及所有这些东西,从而为您的服务类提供一个“生态系统”。生活和经营。
您可以在控制台应用程序,Windows服务甚至Winforms应用程序中自己实例化ServiceHost类,从而使您的WCF服务类可供外部使用 - 或者您可以将该工作委派给IIS或WAS。甚至IIS或WAS也将使用ServiceHost来托管您的WCF服务 - 他们只是在幕后自动执行,并且“按需”即可。 - 每当您的WCF服务请求进入时。
马克