Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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 WPF应用程序中的WCF命名管道_.net_Wpf_Wcf_Named Pipes - Fatal编程技术网

.net WPF应用程序中的WCF命名管道

.net WPF应用程序中的WCF命名管道,.net,wpf,wcf,named-pipes,.net,Wpf,Wcf,Named Pipes,如何在WPF Windows应用程序的后台运行WCF命名管道服务?我似乎找不到在WPF应用程序中运行WCF服务器的任何示例 有什么想法吗 我目前正在应用程序启动中使用以下代码。这是否需要使用自己的线程运行 Using Host As ServiceModel.ServiceHost = New ServiceModel.ServiceHost(GetType(Service), New Uri(("net.pipe://localhost"))) ' Ho

如何在WPF Windows应用程序的后台运行WCF命名管道服务?我似乎找不到在WPF应用程序中运行WCF服务器的任何示例

有什么想法吗

我目前正在应用程序启动中使用以下代码。这是否需要使用自己的线程运行

    Using Host As ServiceModel.ServiceHost = New ServiceModel.ServiceHost(GetType(Service), New Uri(("net.pipe://localhost")))
        '
        Host.AddServiceEndpoint(GetType(IService), New ServiceModel.NetNamedPipeBinding, "Test")
        Host.Open()
        '
    End Using

Juval Lowy在他的ServiceModelEx库中提供了帮助器类以及有关如何在进程中运行WCF组件的信息,这可能是您希望对WCF组件执行的操作,因为您希望使用命名管道,这要求组件与WPF应用程序在同一台机器上运行

我建议从Juval Lowy第二版的第60页开始阅读InProcFactory类。这本质上是WCF的“圣经”


这将准确地向您展示如何使用其助手类托管进程中的组件。

我删除了using代码块,并将ServiceHost设置为WPF应用程序类中的私有变量。然后在应用程序退出时关闭ServiceHost。似乎工作正常。

这可能适用,也可能不适用,但最近在WinForms应用程序中有一个关于这一点的问题,他发现需要在UI线程以外的线程中启动ServiceHost。另外,请更新您的问题,说明您遇到了什么问题。例外?无法连接?什么?你可能已经发现了,但是为了其他人的利益,是的,我建议在它自己的线程中运行。我在Winforms中运行了一个类似的服务器,如果您没有在单独的线程中运行,任何不正常的情况都有可能锁定GUI。在WPF应用程序类中启动ServiceHost似乎可以解决这个问题。谢谢你的推荐书!请你回答好吗?