C# 部署WCF服务主机应用程序?

C# 部署WCF服务主机应用程序?,c#,.net,wpf,web-services,wcf,C#,.net,Wpf,Web Services,Wcf,我用3个项目构建了一个解决方案。WCF服务、实体框架模型和承载该服务的Windows窗体应用程序 然后我有一个WPF客户端应用程序,它使用该服务 在Visual Studio 2013中,调试服务主机应用程序的效果与预期一致,我可以使用WPF客户端提供的服务 但是,当我从调试目录中的.exe运行主机应用程序时,服务不会运行。Iget“服务已启动”,无异常。我正在以管理员身份运行.exe,并以管理员身份登录到计算机和域上的服务器(Windows server 2012): public part

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

然后我有一个WPF客户端应用程序,它使用该服务

在Visual Studio 2013中,调试服务主机应用程序的效果与预期一致,我可以使用WPF客户端提供的服务

但是,当我从调试目录中的.exe运行主机应用程序时,服务不会运行。Iget“服务已启动”,无异常。我正在以管理员身份运行.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中运行,这里是否有一些明显的问题我遗漏了?

终于让该服务运行了

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


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

位于调试文件夹中的app.config文件可能有问题?这意味着您的服务正在运行,但使用了不同的端口/协议。不要认为我在VS中更改了baseAddress端口,否则会引发异常。一切都在VS环境中工作,只有bin中的.exe在服务未运行时自行运行。我在模型项目中使用实体框架,在另一台服务器上使用db。ping也可以。您能提供一些关于端点的详细信息吗?您发布的代码看起来像一个
WinForm
。在主机运行时,您是否能够从客户端应用程序呼叫服务?是的,很抱歉,这是一个小型winforms应用程序。现在让它运行,必须更改客户端端口。看起来windows会将应用程序分配到config.app中定义的端口以外的其他端口,可能是因为调试模式已经占用了该端口?