繁体   English   中英

没有gui的WCF服务应用程序将继续存在

[英]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服务中。 在这里,您有一个基本样本。

好处应该是显而易见的:

  1. 即使没有用户登录也可以运行。
  2. 不需要解决方法即可保持应用程序打开。

此外,您应该考虑将WCF配置(如基地址,服务行为)外部化为应用程序配置文件。 您不希望每次配置发生任何更改时都可以重建和重新部署服务,这可能会因开发,测试,验收和生产环境而异。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM