WCF:什么是 ServiceHost?

发布于 2024-07-18 06:03:57 字数 636 浏览 8 评论 0原文

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

这个ServiceHost到底是什么?


在我当前的项目中,我正在使用WCF服务,并从我的应用程序中引用它,每当我想从我的应用程序中使用它时,我只需像这样实例化其 ServiceClient 即可:

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

然后从该实例访问我的 Web 方法 (OperationContracts)(显然在使用该方法之前打开它,然后使用 关闭它)打开关闭

我的WCF服务托管在我的IIS中,我只需从我的应用程序访问.svc来实例化ServiceClient

那么为什么以及在哪里使用 ServiceHost 呢?

As I'm currently learning to use WCF Services, I am constantly encountering tutorials on the internet which mention using a ServiceHost when using a WCF Service.

What exactly is this ServiceHost ?


In my current project I am using a WCF Service and having a reference to it from my app and whenever I want to consume it from my app I just instantiate its ServiceClient like such:

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

And then access my web methods (OperationContracts) from that instance (obviously opening it before consuming the method and closing it afterwards with Open and Close)

My WCF service is host in my IIS and I just access the .svc from my app to instantiate the ServiceClient.

So why and where is ServiceHost used?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぃ弥猫深巷。 2024-07-25 06:03:57

ServiceHost 基本上为您提供了在非 IIS 或 WAS 设置中托管 WCF 服务所需的一切。 ServiceHost 的常见位置是控制台应用程序或 Windows 服务。 请参阅 MSDN 中的示例代码,了解如何在控制台中设置 ServiceHost应用程序

A ServiceHost basically provides you everything you need to host a WCF service in a non-IIS or WAS setting. A common place for a ServiceHost would be in a console app or Windows service. See the example code from MSDN for how to setup a ServiceHost in a console app.

小嗲 2024-07-25 06:03:57

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

您可以自己实例化 ServiceHost 类在控制台应用程序、Windows 服务甚至 Winforms 应用程序中,从而使您的 WCF 服务类可供外界使用 - 或者您可以将该工作委托给 IIS 或 WAS。 甚至 IIS 或 WAS 也会使用 ServiceHost 来托管您的 WCF 服务 - 它们只是在幕后自动执行,并且“按需” - 每当对您的 WCF 服务的请求传入时

Your service implementation is just a .NET class - you need to have a runtime environment for it, so it can be executed somehow. That's what the ServiceHost is for - it will load your service class, set up the endpoints and channel listeners and all that stuff, and thus give your service class an "ecosystem" to live and operate in.

You can either instantiate a ServiceHost class yourself in a console app, a Windows service, or even a Winforms app, and thus make your WCF service class available to the outside world - or you can delegate that work to IIS or WAS. Even IIS or WAS will use a ServiceHost to host your WCF service - they just do it automagically behind the scenes, and "on demand" - whenever a request for your WCF service comes in.

Marc

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文