【发布时间】:2011-08-02 11:23:16
【问题描述】:
我有一个 wcf 服务 (wsDualHttpBinding) 我将它从 BasicBinding 更改为 wsDualHttpBinding 以支持事件,我实现了回调合同,这里的一切都是我的服务合同上的属性:
[ServiceContract(
SessionMode = SessionMode.Required,
CallbackContract = typeof(IServiceCallBack))]
现在的问题是:当我启动它运行的服务时,一切正常,除了它的操作没有开始! ,现在如果我打开客户端并尝试调用服务中的任何方法,它就会启动并开始操作,尽管我调用的方法与操作完全无关。
在我更改 wsDualHttpBinding 之前它也可以正常工作。
看起来服务在与客户端打开会话之前不会被实例化。
WCF 服务托管在控制台应用程序中。
如果自动启动设置为 true,我有一个要打开的端口列表,在 WCF 服务的构造函数中,我从数据库中获取端口并检查是否有自动启动并打开它,wcf 服务公开添加新端口、删除端口和编辑等功能
有什么办法解决吗?
提前致谢。
【问题讨论】:
-
WCF 操作必须被某些东西消耗,这就是重点..所以我不确定你在这里问什么。要让某些东西自动执行,编写 Windows 应用程序并安排它,甚至更好的自动启动的 Windows 服务。
-
它是一个 Windows 服务,它执行操作并打开端口以进行侦听,以及一个 wcf 用于管理 Windows 服务。
-
还是没有多大意义。您究竟希望该操作如何“开始”?应该从什么开始?
-
如果自动启动设置为 true,我有一个要打开的端口列表,在 WCF 服务的构造函数中,我从数据库中获取端口并检查是否有自动启动并打开它,wcf服务公开诸如添加新端口和删除端口和编辑等功能
-
很明显,该服务现在正在按需运行,就像我在 IIS 上托管它一样,虽然我将它托管在控制台应用程序中,但我不知道为什么会这样,也请注意它曾经可以工作当它使用 basichttpbinding 但现在我将其更改为双重时它停止工作。
标签: c# wcf wcf-binding