我已经建立了一个包含3个项目的解决方案。 WCF服务,实体框架模型和托管服务的Windows窗体应用程序。
然后我有一个使用该服务的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运行?
答案 0 :(得分:0)
终于让服务运行了。
我不得不在客户端的“添加服务引用”向导中使用下一个端口。据推测这是因为de-bug模式使用app.config中定义的端口,因此当您单独运行应用程序时,该端口已经被指定给调试运行时,因此应用程序将占用下一个端口。
在服务器上调试这个问题很棘手,使用跟踪可能是一个好主意。