[英]WCF Service application without gui that will stay alive
[WCF新手]
我有一个基本的客户端-服务器WCF项目。
我的服务是“无gui”应用程序,这意味着我创建了winform应用程序,删除了Form1.cs和启动gui的行。
该服务运行正常,我正在使用servicehost.open。
我的问题是它是“串行”(同步)的,所以一秒钟后该应用程序存在。
如何使应用程序保持活动状态并监听主机?
我需要停止进程,然后在要结束它时关闭host.close。 谢谢
这是服务代码:
class Program
{
public static Uri BaseAddress;
[STAThread]
static void Main(string[] args)
{
string baseAddressStr = "http://localhost:7000/someservice";
BaseAddress = new Uri(baseAddressStr);
using (ServiceHost host = new ServiceHost(typeof(MyClass)BaseAddress))
{
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
host.Open();
host.Close();
}
}
}
我认为您不想在无窗口的WinForms应用程序中托管WCF服务。 如果希望它无限期保持打开状态,则方法是将WCF服务托管在Windows服务中。 在这里,您有一个基本样本。
好处应该是显而易见的:
此外,您应该考虑将WCF配置(如基地址,服务行为)外部化为应用程序配置文件。 您不希望每次配置发生任何更改时都可以重建和重新部署服务,这可能会因开发,测试,验收和生产环境而异。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.