【发布时间】:2014-01-24 22:06:25
【问题描述】:
我正在使用 WCF 服务并将其托管在控制台应用程序中。我的所有配置都在一个 XML 文件中。该服务运行良好,我可以从客户端很好地连接它,但令我困扰的是,当我启动它时,WcfSvcHost 应用程序启动(在我的图标托盘中)并显示“您的服务已被托管...... ”。但是当我点击它时,它会显示我的服务并在状态下显示已停止(错误是没有定义端点)。
我有两个项目,一个是服务,另一个是托管它。错误指向其中包含服务的项目,该项目没有定义配置,因为(我假设)那里不需要它。我的所有配置都在托管服务的项目中,在 App.config 中。
我如何摆脱该消息?这到底是个问题还是正常?
附:我只启动托管服务的项目,而不是具有服务代码的项目。
【问题讨论】:
-
我很困惑。 IIS 不会托管您的服务吗?另一个项目如何托管 WCF 服务?
-
@crush 您可以从代码中托管 WCF 服务,只需选择一个端口并说“开始侦听 HTTP 请求”。
-
@TimothyShields Web.config 是否适用于这种情况?
-
是的,您可以使用 IIS,但您也可以自行托管它,只需将服务项目包含在另一个项目中,添加对 System.ServiceModel 的程序集引用并在代码中执行此操作:
ServiceHost selfHost = new ServiceHost(typeof(YourService));并打开它:selfHost.Open(); -
@crush:您还可以避免在 IIS 中托管的所有缺点和问题.....
标签: c# wcf self-hosting