Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 通过控制台应用程序托管WCF服务_.net_Wcf - Fatal编程技术网

.net 通过控制台应用程序托管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.

这可能是一个简单的解决方案

我在这样的项目中创建了最简单的WCF主机

    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()