2014-11-14 87 views
0

我已经建立了3个项目的解决方案。 WCF服务,实体框架模型和托管服务的Windows窗体应用程序。部署WCF服务主机应用程序?

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

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

但是,当我从调试目录中的.exe运行主机应用程序时,服务不会运行。 Iget'Service Started'并没有例外。我运行.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运行?

+1

可能是位于debug文件夹中的app.config文件中存在问题?意思是你的服务正在运行,但使用不同的端口/协议 – vzayko 2014-11-14 16:17:57

+0

不要这么想,因为如果我在VS中更改baseAddress端口,它会引发异常。一切工作在VS环境中,当服务不运行时,只有从bin运行的.exe文件才能运行。我在模型项目中使用实体框架,在另一台服务器上使用数据库。 ping也可以。 – Hardgraf 2014-11-14 16:20:34

+0

你可以提供一些关于你的端点的细节吗? – Shah 2014-11-15 07:33:53

回答

0

终于得到了服务运行。

我不得不使用客户端上添加服务引用向导中的下一个端口。大概这是因为de-bug模式使用app.config中定义的端口,因此,当您单独运行应用程序时,该端口已被指定给调试运行时,因此该应用程序需要连接下一个端口。

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