当前位置:  开发笔记 > 编程语言 > 正文

WCF绑定 - 这么多!我该如何选择一个?

如何解决《WCF绑定-这么多!我该如何选择一个?》经验,为你挑选了3个好方法。

我们有一个R服务器 (R是一种用于统计分析的编程语言),它基本上采用脚本和csv文件,处理一些数据并将结果作为文本返回.

我需要在R服务器上编写一个服务,以便.net客户端(可能是.Net Windows Forms或ASP.Net)可以连接到R服务器,提交脚本和CSV文件,然后返回结果.

我对可用的许多不同的绑定感到困惑,网络上的信息似乎很稀疏/分散于选择的内容.

另外,最好是在IIS中运行服务,还是作为单独的"命令行"类型监听器服务(后者看起来比IIS更难看,我不知道为什么有人会选择这样做,如果他们可以在IIS中运行它)?



1> Marc Gravell..:

就个人而言,我建议最简单的绑定,以满足您的需求.我做了很多WCF(有些非常复杂),我从来没有使用过BasicHttpBinding以外的任何东西; 这也允许与非.NET客户端最大可能的兼容性,并允许您使用MTOM之类的东西进行有效的二进制传输.

重新托管; IIS对于客户端/服务器设置来说确实是最简单的; 两个特别的优势:

易于配置SSL(即您只需配置IIS,WCF将使用它)

易于负载平衡(只需负载平衡您的Web场)

(我相信运行在BasicHttpProfile上的WCF也可以利用你的IIS压缩[GZip/Deflate]设置,但是不要引用我......)

如果(例如)您需要长时间运行的有状态服务器,则可以选择使用独立主机(通常通过Windows服务).IIS有这种习惯(按设计)回收应用程序池,如果你在内存中保留一些内容,那就不好了!另一个例子是你希望它已经运行以获得快速的"第一次"命中性能(而不是等待IIS/ASP.NET启动).涵盖这两者的示例可能是托管WF(工作流)服务器.

再次; 如果您不需要这种复杂性,请选择最简单的选项:在IIS中托管.



2> Ray Lu..:

确实有很多选择.

捆绑

WCF提供的绑定是一组用于常见场景的协议.它指定传输,消息和安全信息.

选择绑定时,您需要找出所需的功能.例如,你可能需要一种方法

验证客户端,因为您不希望每个人都能使用您的服务.

数据可能需要加密.

该服务需要与其他平台的客户端互操作.

消息的开销正在成为一个问题.

如果您知道客户端始终来自dot net,则可以使用net tcp绑定,这比basicHttpbinding更快.但是,basicHttpBinding是一个可互操作的协议,即使是php或java客户端也可以毫无问题地与它通信.

定义自己对服务的要求,然后查找现有的绑定以满足您的需求,如果没有任何现有绑定,您可以创建自己的绑定,称为自定义绑定,它可以将来自不同绑定的功能组合在一起来实现目标.

主机

IIS更具可扩展性.如果您的服务不需要必须在长期守护进程(Windows服务或控制台应用程序)中托管的状态,则可以选择IIS,因为很容易为您的服务启用压缩和加密.

更多关于绑定

如果你想在浏览器中调用你的服务,即javascript WebHttpBinding是为你定义的dot net.您可以使用enbableWebScript使服务理解javascript的JSON.

可用性

如果一个特定绑定无法满足所有要求,则可以在不同端点以不同绑定方式公开每个服务.例如host/soap host/nettcp host/json



3> chandmk..:

我建议参考Juval Lowy的"编程WCF服务"一书.

他通过决策图表来帮助您决定使用哪种绑定.你也可以在这里找到他关于绑定的文章

http://www.code-magazine.com/article.aspx?quickid=0605051&page=3

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有