.net 通过控制台应用程序托管WCF服务
这可能是一个简单的解决方案 我在这样的项目中创建了最简单的WCF主机.net 通过控制台应用程序托管WCF服务,.net,wcf,.net,Wcf,这可能是一个简单的解决方案 我在这样的项目中创建了最简单的WCF主机 static void Main(string[] args) { using (ServiceHost host = new ServiceHost( typeof(AmphoraService.ConsignmentService.Consignment))) { host.Open(); Console.
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(
typeof(AmphoraService.ConsignmentService.Consignment)))
{
host.Open();
Console.WriteLine("Consignment Service Activated! Press <Enter> to terminate " +
"the Host application.");
Console.WriteLine();
Console.ReadLine();
}
}
static void Main(字符串[]args)
{
使用(ServiceHost主机=新ServiceHost主机)(
类型(AmphoraService.CommissionService.Commission)))
{
host.Open();
Console.WriteLine(“寄售服务已激活!按下可终止”+
“主机应用程序”。);
Console.WriteLine();
Console.ReadLine();
}
}
我在app.config文件中提供了配置
在Visual Studio中按F5时,它将成功运行。文本显示在控制台窗口中,“netstat-a”显示端口808正在侦听(它是一个nettcp绑定)
但是,当我退出Visual Studio并尝试单击bin\debug***.exe文件时,会出现一个控制台窗口,但什么也没有发生!“netstat-a”表示端口808没有侦听
我忽略了什么?如果什么也没发生,程序很可能位于
host.Open()
行。尝试将visual studio附加到该实例(使用调试>附加到进程)
您还可以尝试等待一段时间,看看是否出现异常,例如超时或其他情况,当ServiceHost尝试实例化您的服务对象时,可能出现了问题
当您第一次运行某些资源时(在VisualStudio中),它是否会被锁定?如果您先从资源管理器重新启动并运行exe呢?hmm。。事实上我在这里跑得有点太快了。似乎在启用VisualStudio宿主进程(..vshost.exe)时,服务会以闪电般的速度启动。但禁用此功能时,启动大约需要2分钟。奇怪..嗯,好吧,试着在服务类的构造函数中设置断点,看看需要多长时间才能到达它们。顺便说一句,您使用的是什么传输?我使用的是nettcp绑定。伙计,现在可以了,启动时间和我无关。你试图解决我的问题,我向你致敬。感谢使用
控制台.ReadLine()
后,最好使用主机.Close()