我通过转到Add New Project - > WCF服务库创建了一个WCF项目,当我在开发环境中运行它时,它打开了WCF测试客户端.如何在未安装Visual Studio的服务器上安装此服务(我不想在IIS上托管它).我应该写一个新的Windows服务吗?
创建Windows服务项目.
将WCF服务添加到此项目.
在主Windows Service类(默认为Service1.cs)中,添加一个成员:
internal static ServiceHost myServiceHost = null;
Run Code Online (Sandbox Code Playgroud)
修改OnStart()以使用您的WCF服务类型启动新的ServiceHost:
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(MyService));
myServiceHost.Open();
}
Run Code Online (Sandbox Code Playgroud)
修改OnStop():
protected override void OnStop()
{
if (myServiceHost != null)
{
myServiceHost.Close();
myServiceHost = null;
}
}
Run Code Online (Sandbox Code Playgroud)
将安装和部署项目(安装项目)添加到您的解决方案.将该项目的输出设置为Windows服务项目的主要输出.在构建安装和部署项目时,您应该看到可用于安装服务的Setup.exe文件.
请记住,您仍需要设置端点和绑定.请考虑使用nettcpbinding进行此设置.
最后一点,参考:错误5:如果在安装后启动Windows服务时遇到问题,则在启动Windows服务时拒绝访问.