博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF小试
阅读量:4880 次
发布时间:2019-06-11

本文共 2255 字,大约阅读时间需要 7 分钟。

1、创建WCF

    右键解决方案-新建项目-WCF服务应用程序。

    创建后会生成一些文件,其中IService.cs是服务的接口,只有在接口中定义的方法才能被外部调用,Service.svc是我们的服务名称,Service.svc.cs是服务代码所在文件,继承自IService.cs。

2、写服务代码

 由于Service.svc.cs继承自IService.cs接口,所以在写方法之前需要先在IService.cs接口中添加方法。

   比如这里添加一个DataSet GetData(int value);方法。方法前面要加OperationContract标签。

[OperationContract]DataSet GetData(int id);

   然后在Service.svc.cs文件中实现这个方法。

public DataSet GetData(int id){      try      {           SqlParameter[] pms = { new SqlParameter("@UserId",id)};           Entities db = new Entities();           List
user = db.User.SqlQuery("exec sp_GetUser @UserId",pms).ToList(); //string sql = "exec sp_GetUser @UserId"; //DataSet ds = SqlHelper.ExecuteDataSet(sql, pms); return SqlHelper.ToDataSet(user); } catch (Exception ex) { SqlHelper.WriteErrorLog("Log", ex.Message); return null; }}

   这里我写了两种连接数据库的方式,ADO.NET和EF,用来执行一个存储过程sp_GetUser,该过程搜索出userid等于传入参数的记录。

   除了这些还要在web.config中的system.serviceModel标签中配置WCF的内容(也可以右键web.config文件选择编辑WCF配置,具体可自行百度),如下:

   写到这,我们的WCF服务端代码就完成了,直接F5运行项目,即可在本地调试WCF,调试完成后右键Service.svc,选择在浏览器中查看,就可以看到我们的服务了,地址栏中的地址就是我们的服务地址了。

   

3、部署

   我们的WCF服务是要部署在IIS服务器上的,这一步也是最容易出错的地方。

   右键添加网站,指向我们发布好的文件夹,右侧菜单选择浏览。

   这里要注意几点:

   1、要保证IIS应用程序池的Framework版本和发布的代码版本一致,否则会出错。

   2、IIS中该项目的标识默认是ApplicationPoolIdentity,要设置为NetworkService,否则会出错。

   3、SqlServer中的NetworkService用户要启用,如果没有的话就要自己添加,添加步骤为:

       数据库-安全性-登录名-右键新建登录名-搜索-高级-立即查找-选中NetworkService-确定。然后配置该用户的权限。

       注意这里的NetworkService用户不是我们数据库的登录用户。不影响连接字符串中的uid。

4、调用

   我们使用WebForm页面来调用部署好的WCF服务。

   创建完项目后,右键添加服务引用,输入我们部署好的服务地址(如http://192.168.113.34:801/Service1.svc),点击转到,即可看到我们的服务名称,点击该服务还能看到可以调用的方法,确定。

   引用完后会多出一个Service References文件夹,里边是我们引用的服务。如图:

   然后在cs文件里使用该服务:

ServiceReference1.Service1Client sc = new ServiceReference1.Service1Client();

   其中的sc即是我们的服务对象,就可以点出我们想要调用的方法了:

DataSet ds = sc.GetData(1);

   OK,搞定!

转载于:https://www.cnblogs.com/dongyu9521/p/6519542.html

你可能感兴趣的文章
参考资料地址
查看>>
08.路由规则中定义参数
查看>>
Pandas截取列部分字符,并据此修改另一列的数据
查看>>
java.lang.IllegalArgumentException
查看>>
【Spark】编程实战之模拟SparkRPC原理实现自定义RPC
查看>>
接口实现观察者模式
查看>>
四则运算完结篇
查看>>
Objective-C中的类目,延展,协议
查看>>
Python标准模块--Iterators和Generators
查看>>
Introduction Sockets to Programming in C using TCP/IP
查看>>
PHP 简单实现webSocket
查看>>
zookeeper部署搭建
查看>>
navigationController pop回之前控制器
查看>>
汇编语言实验一
查看>>
Web.config配置文件详解(新手必看)
查看>>
selenide总结
查看>>
selenium--控制浏览器和简单元素操作
查看>>
android spannableString 替换 textview 中部分文字
查看>>
java 引用
查看>>
关于Spring注解@Async引发其他注解失效
查看>>