[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();
}
}
}
答案 0 :(得分:2)
我认为你不想在无窗口的WinForms应用程序中托管你的WCF服务。 如果您希望它无限期地保持打开状态,那么可以选择在Windows服务中托管WCF服务。 Here你有一个基本的样本。
好处应该是显而易见的:
此外,您应该考虑将WCF配置(如基地址,服务行为)外部化到应用程序配置文件。每次配置中的某些(任何内容)发生变化时,您都不希望重建和重新部署服务,这可能因开发,测试,验收和生产环境而异。