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

C# WCF服务操作在我尝试从客户端访问它之前不会启动,c#,wcf,wcf-binding,C#,Wcf,Wcf Binding,我有一个wcf服务(wsDualHttpBinding),我将其从BasicBinding更改为wsDualHttpBinding,以支持事件,我实现了回调契约,这里的所有内容都是我的服务契约上的属性: [ServiceContract( SessionMode = SessionMode.Required, CallbackContract = typeof(IServiceCallBack))] 现在的问题是:当我启动服务时,它会运行,一切正常,只是它的操作没有开始,现在,

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

[ServiceContract(
    SessionMode = SessionMode.Required,
    CallbackContract = typeof(IServiceCallBack))]
现在的问题是:当我启动服务时,它会运行,一切正常,只是它的操作没有开始,现在,如果我打开客户机并尝试调用服务中的任何方法,它就会启动,操作也会启动,尽管我调用的方法与操作没有任何关系

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

看起来,在与客户端打开会话之前,服务不会被实例化

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


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

有办法解决吗


提前感谢。

在IIS中运行的WCF服务在被调用之前不会启动。如果您运行的是最新(目前为7.5版)的IIS,那么您可以使用AppFabric自动启动功能(已介绍并演示)。

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

WCF操作必须被某些东西占用,这就是关键所在。。所以我不知道你在问什么。要让某些东西自动执行,请编写windows应用程序并对其进行调度,或者让更好的windows服务自动启动。这是一个执行操作并打开侦听端口的windows服务,以及一个管理windows服务的wcf。仍然没有多大意义。你希望这次行动“开始”的准确程度如何?应该启动什么?如果autostart设置为true,我有一个要打开的端口列表,在WCF服务的构造函数中,我从数据库中获取端口,检查是否有任何端口是autostart,然后打开它,wcf服务公开了诸如添加新端口、删除端口和编辑等功能。很明显,该服务现在是按需运行的,就像我在IIS上托管它一样,尽管我在控制台应用程序中托管它,但我不知道为什么会发生这种情况,还请注意,当它使用basichttpbinding时,它曾经可以工作,但现在我将它改为dual,它停止了工作。我将它托管在控制台应用程序中!由于您将其托管在控制台应用程序中,能否提供用于启动ServiceHost的代码?var_ReceiverHost=新ServiceHost(typeof(Controller))_ReceiverHost.Open();