部署 WCF 服务主机应用

本文关键字:应用 主机 服务 WCF 部署 | 更新日期: 2023-09-27 18:30:34

我已经用 3 个项目构建了一个解决方案。WCF 服务、实体框架模型和承载该服务的 Windows 窗体应用。

然后,我有一个使用该服务的 WPF 客户端应用。

在 Visual Studio 2013 中,调试服务主机应用按预期工作,我可以从 WPF 客户端使用该服务。

但是,当我从调试目录中的.exe运行主机应用程序时,该服务不会运行。我得到"服务已启动",没有例外。我以管理员身份运行.exe,并以计算机和域上的管理员身份登录到服务器(Windows Server 2012):

 public partial class RegimesHost : Form
{
    public RegimesHost()
    {
        InitializeComponent();
        lblStatus.Text = string.Empty;
    }
    ServiceHost host;
    private void btnStart_Click(object sender, EventArgs e)
    {
        host = new ServiceHost(typeof(RegimesService));
        host.Open();
        lblStatus.Text = "Started...";
    }
    private void btnStop_Click(object sender, EventArgs e)
    {
        host.Close();
        lblStatus.Text = "Stopped...";
    }     
}
关于

为什么该服务将在 Visual Studio 的调试中运行而不是从调试目录中的.exe运行,我在这里是否缺少一些明显的东西?

部署 WCF 服务主机应用

终于让服务运行起来了。

我必须在客户端的"添加服务引用"向导中使用下一个端口。据推测,这是因为 de-bug 模式使用 app.config 中定义的端口,因此当您独立运行应用程序时,该端口已指定给调试运行时,因此应用程序将采用下一个端口。

跨服务器调试此内容很棘手,使用跟踪可能是个好主意。