wcf服务器(wcf是什么意思)

如何配置net.tcp 的WCF服务

首先让我们来开始编写服务器端,服务器端用的是Console Application。

由于我们的软件是一个能够通过学生ID来获取学生姓名的小程序,所以,首先必须得有一个StudentInfo实体类:

在这个实体类中,DataContract代表数据契约,DataMeber代表数据成员,加上这些Attribute后,能够传送给Client端。

然后是一个接口,这个接口定义了服务契约和操作契约:

然后是具体的实现方法:

这个方法里,我们有两个函数,一个能够根据学生点获取学生全名,另一个是根据学生点获取学生的实体对象。

好了,让我们来编译这个项目,得到一个WCFServiceGeneratedByConfig.exe文件。

然后,我们需要配置文件来让服务器端启动,所以这里我们要用WCF Service Configuration Editor

工具来进行,由于在VS2008和VS2010中带有这个软件,我们可以直接通过菜单->Tools->WCF Service Configuration Editor来打开。

首先,点击File->New config,打开Service的Configuration界面。

然后,点击Create a new service…,在弹出的界面中,我们选择刚才生成的那个WCFServiceGeneratedByConfig.exe文件。双击之后,软件自动显示出了里面含有的Service:

点选那个Service,然后点击两次next,我们会看到出现了选择Communation Mode的界面,这里由于我们用的是net.tcp,所以我选择了第一个:TCP。

然后点击Next,我们会看到要我们填写EndPoint,这里我随便填写了一个:

之后,点击Next知道Finish,然后,我们的最基本的配置就结束了。

回到Config界面之后,我们点击Advanced->Service Behaviors->New Service Behavior Configuration,在弹出的界面中,我们点击Add->serviceMetadata:

然后点击Add,我们就添加了一个Behavior Element。点击刚刚生成的serviceMetadata节点,在显示的界面中,设置HttpGetEnabled为true。

然后点击原来的Service节点下的Host节点,在Base Address栏目下单击Add,添加如下的Base Address:

最后点击OK。然后点击菜单File->Save As保存到项目文件夹下即可。

这里是生成的代码:

这一步做完后,我们需要让服务能够启动,怎么启动呢?请看下面的代码:

代码中的注释部分非常重要,我们一定要添加,否则下面的步骤不能进行,具体的原因,参加我的另一篇文章:在net.tcp模式下,由SvcUtil.exe生成代理类文件和配置文件

然后运行这个ConsoleApplication。

接下来,找到SvcUtil.exe,C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\SvcUtil.exe,在CMD窗口下运行如下命令:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\SvcUtil.exe net.tcp://127.0.0.1:50001/StudentServiceEndPoint

这样,这个小工具就会自动的给我们生成代理类和配置文件

Microsoft(R) Service Model Metadata Tool

[Microsoft(R) Windows(R) Communication Foundation,版本 3.0.4506.2152]

版权所有(c) Microsoft Corporation。保留所有权利。

正在尝试使用 WS-Metadata Exchange从“net.tcp://127.0.0.1:50001/StudentServiceEndPoint”下载元数据。此 URL不支持 DISCO。

正在生成文件...

E:\WCF\WCF_ChatRoom\StudentService.cs

E:\WCF\WCF_ChatRoom\output.config

请按任意键继续...

接下来,新建一个WindowsFormsApplication程序,将这个代理类拷入,配置文件修改名称为App.config拷入,

然后在Form1.cs中拖入一个文本框,一个按钮,一个DataGridView,后台代码如下:

启动这个实例,输入学生ID,我们成功得到了服务端返回的值。

那么能不能在公网上使用呢?呵呵,这个当然,将服务端拷贝到外网的一台机器上,然后修改服务器端的配置文件中的地址为:net.tcp://169.*.*.124:50001/ StudentServiceEndPoint,然后将本机的配置文件中的地址也修改为这个,最后运行,依然能够得到返回的结果。

如何将一个wcf 部署到另一台服务器上

1.选择windows的任何一个版本都可以。

2.大致步骤是:

远程登录到主机上

安装.net framework

确定你的windows系统下是否启动了IIS。注意设置其端口不是80,例如设置为70

把你的asp.net网站所在目录复制到主机上

在IIS里边配置一个新的虚拟目录(例如abc),使其物理地址为你的网站目录。

配置这个虚拟目录的属性,启用asp.net应用程序池。

通过你的主机的网卡属性查看是否启用了防火墙。如果启用了,暂时先关闭它!

在主机上本地测试你的网站。例如确保可以从ie地址栏访问

http//localhost:70/abc/myservice.svc

通过远程访问服务,例如确保可以从你的桌面电脑的浏览器地址栏访问

WcfWCF的优势

在David Chappell的《Introducing Windows Communication Foundation》一书中,他通过一个生动的汽车租赁公司租车预约服务的例子,揭示了WCF的核心优势。该服务需要被呼叫中心、基于J2EE的系统以及合作伙伴应用等多种应用访问,这就突显了WCF的灵活性和适用性。

从功能角度看,WCF集成了ASMX、.Net Remoting、Enterprise Service、WSE和MSMQ等技术,提供了统一的开发平台。开发者无需分别掌握这些技术,只需通过WCF就能满足服务的安全、可靠性和跨平台通信需求,简化了开发过程。使用WCF,开发者可以像创建面向对象应用一样,轻松构建面向服务的应用程序,如创建服务的图形化描述。

WCF的优势主要体现在以下几个方面:

统一性:WCF作为各种技术的整合,其应用程序开发与.Net其他应用相似,借助托管代码,开发者可以方便地构建服务,无需过多关注底层技术细节。

互操作性:WCF基于SOAP,确保了不同系统间的互操作性,无论这些系统运行在哪个环境,如Windows、J2EE应用服务器等,都能实现顺畅通信。

安全与可信赖:通过WS-Security和WS-Trust等标准,WCF提供了强大的安全防护,支持可靠的消息传输和两阶段事务提交,确保了服务的可靠性和数据完整性。

兼容性:WCF对旧有系统的兼容性考虑周全,不会影响ASMX和.Net Remoting等技术的使用。WCF和ASMX应用之间可以无缝交互,使用SOAP作为基础,还支持如MTOM等扩展机制。

阅读剩余
THE END