没有gui的WCF服务应用程序将保持活跃
本文关键字:活跃 应用程序 服务 gui WCF 没有 | 更新日期: 2023-09-27 18:04:25
[WCF newbie]
我有一个基本的客户机-服务器WCF项目。
我的服务是"gui"较少的应用程序,这意味着我创建了winform应用程序,删除了form .cs和启动gui的行。
服务运行正常,我正在使用servicehost.open.
我的问题是它是"串行"(同步),所以一秒钟后应用程序存在。
如何使应用程序保持活动状态并侦听主机?
我需要停止这个进程,然后托管。当我想结束这一切的时候。由于
服务代码:
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配置(如基址、服务行为)外部化到应用程序配置文件中。您不希望每次配置发生变化(可能因开发、测试、验收和生产环境而异)时都重新构建和重新部署服务。