WCF自定义宿主的方式;
时间: 2024-01-21 21:19:25 浏览: 106
Wcf 创建及不同宿主方式(自托管,windows服务,IIS)
WCF(Windows Communication Foundation)是一个用于创建分布式应用程序的框架。在WCF中,可以使用多种方式来托管(host)服务,包括IIS、Windows服务、自定义宿主等。
下面介绍一下如何使用自定义宿主来托管WCF服务:
1. 创建一个实现了System.ServiceModel.ServiceHost类的自定义宿主。
```csharp
public class MyServiceHost : ServiceHost
{
public MyServiceHost(Type serviceType, params Uri[] baseAddresses) : base(serviceType, baseAddresses)
{
}
protected override void OnOpening()
{
// 在打开宿主之前可以进行一些预处理工作
base.OnOpening();
}
protected override void OnClosed()
{
// 在关闭宿主之前可以进行一些清理工作
base.OnClosed();
}
}
```
2. 在自定义宿主中添加WCF服务的终结点。
```csharp
public class MyServiceHost : ServiceHost
{
public MyServiceHost(Type serviceType, params Uri[] baseAddresses) : base(serviceType, baseAddresses)
{
}
protected override void OnOpening()
{
// 添加终结点
this.AddServiceEndpoint(typeof(IMyService), new BasicHttpBinding(), "http://localhost/MyService");
base.OnOpening();
}
protected override void OnClosed()
{
base.OnClosed();
}
}
```
3. 在应用程序中创建自定义宿主实例,并启动宿主。
```csharp
var host = new MyServiceHost(typeof(MyService));
host.Open();
```
4. 关闭自定义宿主。
```csharp
host.Close();
```
通过自定义宿主,可以对WCF服务进行更加细粒度的控制和定制,比如添加自定义行为、启用安全性等。
阅读全文