嗯,现在有个问题的确摆在了我们眼前,不管怎么样,不能靠类库吃一辈子吧?总要学会自己构建一个服务器的吧。
那好,我们来制作一个服务器吧。
创建一个windows控制台项目,命名为Host
对Host添加.NET System.ServiceModel名空间引用
对Host添加刚才生成的WCF项目,注意,不是引用服务,就是引用本地项目类库,我们的目标是不再使用wcf默认的服务器了。
然后对Host项目添加项目配置文件App.config
将WCF类库中自动生成的App.config内容原封不动的全部拷贝到Host项目的App.config中
编写Host中的主文件如下
namespace Host { class Program { static void Main(string[] args) { using (ServiceHost calculatorServiceHost = new ServiceHost(typeof(Service1))) { // 设置委托匿名函数,当服务打开时能看到提示 calculatorServiceHost.Opened += delegate { Console.WriteLine("Calculator Service begin to listen via the Address:{0}", calculatorServiceHost.BaseAddresses[0].ToString()); }; // 打开服务,所有的配置都从App.config中读取,不需要重新写什么 calculatorServiceHost.Open(); // 阻塞程序,否则一启动就结束了 Console.Read(); } } } }
好了,然后直接运行Host程序,等程序启动完以后再启动Client程序,同样可以看到结果哦。