WCF服务操作不开始,直到我试图从客户端访问它

本文关键字:客户端 访问 操作 服务 开始 WCF | 更新日期: 2023-09-27 18:04:09

我有一个wcf服务(wsDualHttpBinding),为了支持事件,我将它从BasicBinding更改为wsDualHttpBinding,我实现了回调契约,这里的一切都是我的服务契约上的属性:

[ServiceContract(
    SessionMode = SessionMode.Required,
    CallbackContract = typeof(IServiceCallBack))]

现在的问题是:当我启动服务,它运行和一切都很好,除了它的操作没有开始!,现在,如果我打开客户端并尝试调用服务中的任何方法,它就会启动,操作也会启动,尽管我调用的方法与操作根本无关。

在我更改wsDualHttpBinding之前,它也可以正常工作。

看起来服务直到与客户端打开会话才被实例化。

WCF服务驻留在控制台应用程序中。

我有一个端口列表打开,如果他们的自动启动设置为true,在WCF服务的构造函数中,我从数据库中获取端口,并检查是否有自动启动,我打开它,WCF服务暴露功能,如添加新端口和删除端口和编辑等

有办法解决这个问题吗?

WCF服务操作不开始,直到我试图从客户端访问它

在IIS中运行的WCF服务在被调用之前不会启动。如果您运行的是最新版本的IIS(目前是v7.5),那么您可以使用AppFabric自动启动特性,这里有介绍和演示。

我正在做同样的事情来管理后台应用程序。确保您的主机仍然可以实例化您的服务。如果您更改了绑定名称,可能您的主机无法再找到它。