使用单个控制台应用程序托管两个WCF服务
我试图使用一个控制台应用程序托管两个服务。 但是,当我尝试这样做时,只有一个服务被托管,而另一个服务没有。
Program.cs中:
namespace WWWCFHost { class Program { static void Main(string[] args) { using (ServiceHost host = new ServiceHost(typeof(WWWCF.Login))) { host.Open(); Console.WriteLine("Service1 Started"); } using (ServiceHost host1 = new ServiceHost(typeof(WWWCF.UserRegistration))) { host1.Open(); Console.WriteLine("Service2 Started"); Console.ReadLine(); } } } }
App.config中
在上面的代码中,我试图在端口8080上托管一个服务,而另一个在端口8090上托管。当我运行应用程序时,第一个服务启动然后自动关闭,第二个服务仍然启动。 如何同时托管这两项服务?
我已经浏览了这个链接: 两个WCF服务,托管在一个控制台应用程序中
我也经历过其他线索。但他们没有解决我的问题。
如果需要,将很乐意提供任何进一步的细节。
您的第一个服务跳出using
块,因此处置太早。 试试这个…
using (ServiceHost host = new ServiceHost(typeof(WWWCF.Login))) using (ServiceHost host1 = new ServiceHost(typeof(WWWCF.UserRegistration))) { host.Open(); Console.WriteLine("Service1 Started"); host1.Open(); Console.WriteLine("Service2 Started"); Console.ReadLine(); }
看看这个: http : //msdn.microsoft.com/en-us//library/yh598w02.aspx
你正在关闭第一个,因为它正在使用中。 您需要对其进行设置,以便在ReadLine()
调用之后,第一个使用范围不会结束。
尝试:
using (ServiceHost host = new ServiceHost(typeof(WWWCF.Login))) { host.Open(); Console.WriteLine("Service1 Started"); using (ServiceHost host1 = new ServiceHost(typeof(WWWCF.UserRegistration))) { host1.Open(); Console.WriteLine("Service2 Started"); Console.ReadLine(); } }
- 提高ASP.NET / C#编译速度的最佳方法是什么?
- VisualStateManager无法在UserControl上启动动画
- System.Web.Services.Protocols.SoapHttpClientProtocol使用什么版本的SSL / TLS?
- 为什么英语(加勒比海)的文化名称为“en-029”?
- 通过正则表达式匹配循环
- 扩展方法的ArgumentNullException或NullReferenceException?
- 将FilterDefinition 转换为我可以在mongo shell中运行的常规json mongo查询
- 使用进程间同步对象同步2个进程 – Mutex或AutoResetEvent
- 如何在每个单元格中设置具有不同DataSource的DataGridView ComboBoxColumn?