由于我目前正在学习使用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服务请求进入时。

马克

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top