客户端上的WCF自托管?好还是坏

客户端上的WCF自托管?好还是坏,wcf,Wcf,我想知道是否有人尝试过使用这种技术从服务器端将事件发送到客户端。我的环境使用基于Unix的服务器,因此不能使用WCF双工/回调等 我的想法是,我的客户端是运行厚厚的.net应用程序的windows Box,这将启动一个WCF自主机,并在服务器上为该会话注册其自主机URL。他们会有一个非常简单的合同,当服务器有更新时,会呼叫客户机服务器,告诉它更新正在服务器上等待,然后客户机会得到它,等等 我仍在努力了解WCF,所以不确定这是否是一个好方法,是否有任何安全隐患我应该担心?有没有办法让双工呼叫跨平台

我想知道是否有人尝试过使用这种技术从服务器端将事件发送到客户端。我的环境使用基于Unix的服务器,因此不能使用WCF双工/回调等

我的想法是,我的客户端是运行厚厚的.net应用程序的windows Box,这将启动一个WCF自主机,并在服务器上为该会话注册其自主机URL。他们会有一个非常简单的合同,当服务器有更新时,会呼叫客户机服务器,告诉它更新正在服务器上等待,然后客户机会得到它,等等

我仍在努力了解WCF,所以不确定这是否是一个好方法,是否有任何安全隐患我应该担心?有没有办法让双工呼叫跨平台工作

在使用套接字之前,我也做过类似的事情,也许跨平台消息队列是更好的方法

谢谢


76mel

至少,这听起来应该是可行的,尽管我猜你也可以在IIS中托管,因为*nix服务器可以进行web调用,对吗?我不确定自托管会给您带来什么好处,尽管它应该工作得很好,但配置起来可能会有点麻烦,等等


无论何时您做出决定,请在此更新,因为这听起来是一个有趣的挑战,我们中的一些人希望看到您的表现。

我们使用自托管WCF进行类似的场景。我们还希望避免使客户端应用程序依赖于IIS,以避免许可和部署方面的麻烦


它对我们来说相当好,尽管WCF对于您所需要的可能有些过分。因为您使用的是HTTP,所以可以直接在HTTP.sys上创建一个简单的web服务

获得类似结果的另一种方法是让客户投票。这在很大程度上取决于有什么要求。如果你需要一个近乎实时的更新,这显然不起作用,因为你必须通过多次轮询才能做到这一点,但是如果你可以花一分钟或更长的时间来获取客户端的更新,轮询可能就是答案。

是的,我曾考虑过在IIS中间层中安装它,这是一个好主意。我的想法是,我们有10000个客户端,其中1/3是并发的,因此在IIS盒中提供支持需要花费一些钱。我将制定一个概念证明,并将与您保持联系,但如果有人有更多的想法、见解和顾虑,这是否是一件好事,因为旋转TCP侦听器是常见的做法,为什么不使用WCF服务。好的,我已经尝试过了,一切正常。我认为这对防火墙内的项目非常有效。如果您想跨越防火墙,我认为使用总线/队列是一种更好的方式,因为您可以在较低级别进行连接。我在这里做的是得到一个Unix服务器知道的简单事件契约。我在Windows服务中运行了WCF服务,该服务首先向服务器及其端点注册自身。然后服务器可以在我的端点触发事件,我可以通过从服务器提取数据来响应这些事件。http.sys上的简单web服务是否比使用WCF更易于编写和维护?我对此表示怀疑。我自己还没有尝试在http.sys上实现web服务,所以我不能肯定。但我已经和WCF合作了一段时间,发现它没有我想要的那么灵活。还没有。原始Microsoft Cassini示例处于“存档”状态,但一家名为UltiDev的公司有一个增强版本:。codeplex上还有一个C#webserver项目: