万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!
随笔 - 189,  文章 - 0,  评论 - 7,  阅读 - 14万

如题。

这种东西基于微软的一整套东西,在.NET内使用特别方便。利弊自行衡量,是否使用自行决定。

步骤1、创建一组在网上发布的方法

  新建项目,类型选择“WCF服务应用程序”

  

 

   在项目里,你可以补充任意的c#方法,例如:

  

 

   注意:所有方法都必须在接口文件里有说明,否则无法发布。后面会提到。

  至此,用户自定义方法完成。“调试”可以在iisexpress中发布:

  

 

   浏览器里访问的情况如下图:

  

 

   至此,服务发布成功。当然,通过iis正式发布是真实案例中最常用的方式。

步骤2、调用wcf服务。

  核心:新建任意一个项目,引用这个服务,创建客户端,调用它。

  

 

   输入url,转到:

  

 

   此处能看到作为服务提供的几个方法。命名空间可以采用默认的“ServiceReference1”

  主程序中添加必要的引用  

1 using ConsoleApp1.ServiceReference1;

  程序中就可以使用这些方法了  

1 static void Main(string[] args)
2         {
3             Service1Client sc = new Service1Client();
4             int x = 5;
5             x = sc.doubleX(5);
6             Console.WriteLine(x);
7             Console.ReadKey();
8         }

  运行结果:

  

 

 注意:要发布的方法,一定要在接口文件(本例为IService1.cs)里加以说明:

复制代码
 1 public interface IService1
 2     {
 3 
 4         [OperationContract]
 5         string GetData(int value);
 6         [OperationContract]
 7         int doubleX(int x);
 8         [OperationContract]
 9         CompositeType GetDataUsingDataContract(CompositeType composite);
10 
11         // TODO: 在此添加您的服务操作
12     }
复制代码

再次强调,这种服务通常使用iis发布,可以提供更加灵活的调用。相比于webapi,编写和调用习惯都更贴近于常规的c#程序。

缺点:一般仅提供给c#项目。

这种用法,类似于webapi,很贴近于MVC架构里的C。

典型用途:在数据库服务器上做一个wcf程序,可以为数据库应用做一次封装。无论是把access变成“网络数据库”;还是把网络数据库的网络访问权限关闭,仅靠wcf提供服务,以提高安全性,都可以。

posted on   万金流  阅读(649)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

点击右上角即可分享
微信分享提示