我通过转到添加新项目创建了一个WCF项目 - > WCF服务库,当我在开发环境中运行它时,它打开了WCF测试客户端。如何在未安装Visual Studio的服务器上安装此服务(我不想在IIS上托管它)。我应该写一个新的Windows服务吗?
答案 0 :(得分:5)
创建Windows服务项目。
将您的WCF服务添加到此项目中。
在主Windows Service类(默认为Service1.cs)中,添加成员:
internal static ServiceHost myServiceHost = null;
修改OnStart()以使用您的WCF服务类型启动新的ServiceHost:
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(MyService));
myServiceHost.Open();
}
修改OnStop():
protected override void OnStop()
{
if (myServiceHost != null)
{
myServiceHost.Close();
myServiceHost = null;
}
}
向您的解决方案添加安装和部署项目(安装项目)。将该项目的输出设置为Windows服务项目的主要输出。构建安装和部署项目时,您应该看到可用于安装服务的Setup.exe文件。
请记住,您仍需要设置端点和绑定。请考虑使用nettcpbinding进行此设置。
最后请注意,如果您在安装后启动Windows服务时遇到问题,请参考:Error 5 : Access Denied when starting windows service。
答案 1 :(得分:0)
您需要创建一个Windows服务项目,然后添加对WCF服务的引用并托管它。要安装该服务,您不需要visual studio,您需要使用installutil.exe
。
看看here。
答案 2 :(得分:0)
查看TopShelf库。我用它来创建一些WCF服务。
提示:如果您打算编写更多WCF服务,那么在阅读端口共享时可能是值得的。