在我尝试从客户端访问它之前,WCF服务操作不会启动

时间:2011-08-02 11:23:17

标签: c# wcf wcf-binding

我有一个wcf服务(wsDualHttpBinding)我将它从BasicBinding更改为wsDualHttpBinding以支持事件,我实现了回调合同,这里的所有内容都是我服务合同的属性:

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

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

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

看起来服务没有实例化,直到与客户端打开的会话。

WCF服务托管在控制台应用程序中。

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

任何解决方法?

提前感谢。

2 个答案:

答案 0 :(得分:2)

在IIS中运行的WCF服务在调用之前不会启动。如果您运行的是最新的(当前v7.5)版本的IIS,则可以使用AppFabric自动启动功能,描述为here并演示here

答案 1 :(得分:0)

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