当前位置: 首页 > news >正文

基于 C# .NET Framework 4.0 开发实现 WCF 服务实例详解(一)

目录

引言        

1. 创建 WCF 服务库

1.1 创建项目

1.2 定义服务接口

1.3 实现服务接口

2. 配置服务

3. 创建宿主项目

3.1 创建控制台应用程序

3.2 引用服务库

3.3 编写宿主代码

4. 测试 WCF 服务

4.1 启动宿主程序

4.2 添加客户端应用程序

4.3 添加服务引用

4.4 调用服务

5. 运行和测试

概念解释

故障排除


引言        

        我们利用C#可以快速开发各种后端服务,如常见的windows服务、WCF 服务、WebApi等,本文将详细讲解如何基于 C# 和 .NET Framework 4.0 开发一个 WCF 服务,确保每个步骤都清晰且易于理解和掌握。

1. 创建 WCF 服务库

1.1 创建项目
  1. 打开 Visual Studio。
  2. 选择 File -> New -> Project
  3. 选择 WCF 模板下的 WCF Service Library,命名为 WcfServiceLibrary1
1.2 定义服务接口

IService1.cs 中定义服务接口:

using System.ServiceModel;namespace WcfServiceLibrary1
{// ServiceContract 表示这是一个服务接口[ServiceContract]public interface IService1{// OperationContract 表示这是一个可调用的服务方法[OperationContract]string GetData(int value);}
}
1.3 实现服务接口

Service1.cs 中实现服务接口:

namespace WcfServiceLibrary1
{// 具体实现服务接口的方法public class Service1 : IService1{public string GetData(int value){// 返回一个简单的字符串return $"You entered: {value}";}}
}

2. 配置服务

打开 App.config,确保配置如下:

<configuration><system.serviceModel><services><service name="WcfServiceLibrary1.Service1"><endpoint address="" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService1" /><host><baseAddresses><add baseAddress="http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/" /></baseAddresses></host></service></services><behaviors><serviceBehaviors><behavior><serviceMetadata httpGetEnabled="True" /><serviceDebug includeExceptionDetailInFaults="False" /></behavior></serviceBehaviors></behaviors></system.serviceModel>
</configuration>

3. 创建宿主项目

3.1 创建控制台应用程序
  1. 添加一个新的 "Console Application" 项目来宿主 WCF 服务,命名为 ConsoleHost
3.2 引用服务库

在控制台应用程序中添加对 WcfServiceLibrary1 项目的引用。

3.3 编写宿主代码

Program.cs 中编写代码以宿主服务:

using System;
using System.ServiceModel;namespace ConsoleHost
{class Program{static void Main(string[] args){// 创建 ServiceHost 实例来宿主 WCF 服务using (ServiceHost host = new ServiceHost(typeof(WcfServiceLibrary1.Service1))){try{// 打开服务host.Open();Console.WriteLine("Service is running...");Console.WriteLine("Press <Enter> to stop the service.");Console.ReadLine();}catch (Exception ex){Console.WriteLine($"An error occurred: {ex.Message}");}}}}
}

4. 测试 WCF 服务

4.1 启动宿主程序

运行控制台应用程序 ConsoleHost 以启动服务。

4.2 添加客户端应用程序
  1. 创建一个新的 "Console Application" 来测试服务,命名为 WcfClient
4.3 添加服务引用

在客户端项目中,右键点击项目,选择 Add Service Reference,输入服务地址(如 http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/),然后点击 GoOK

4.4 调用服务

在客户端的 Program.cs 中调用服务:

using System;namespace WcfClient
{class Program{static void Main(string[] args){// 创建服务客户端var client = new ServiceReference1.Service1Client();// 调用服务方法string result = client.GetData(42);Console.WriteLine(result);// 关闭客户端client.Close();}}
}

5. 运行和测试

  1. 启动 ConsoleHost 项目以宿主 WCF 服务。
  2. 运行 WcfClient 项目,您应该会看到输出 You entered: 42

概念解释

  • ServiceContract: 用于定义服务接口。
  • OperationContract: 用于标记服务方法。
  • ServiceHost: 用于宿主服务,提供服务管理和生命周期管理。
  • Endpoint: 定义服务的地址、绑定和契约。
  • Binding: 定义如何传输消息(比如 basicHttpBinding)。
  • Contract: 定义服务接口(比如 IService1)。

故障排除

  • 如果服务无法启动,请检查 App.config 中的配置是否正确。
  • 如果客户端无法调用服务,请确保服务地址正确且服务已经启动。
  • 使用 ServiceTraceViewer 查看更详细的WCF跟踪和日志,以帮助诊断问题。

        通过这些步骤和解释,您应该能够深入了解并掌握基于 C# 和 .NET Framework 4.0 的 WCF 服务开发技术。如果遇到任何问题,请提供具体的错误信息以便进一步诊断和解决问题。


http://www.mrgr.cn/news/47018.html

相关文章:

  • linux下的线程
  • WINFORM - DevExpress -> gridcontrol拖拽行记录排序
  • 127.【C语言】补充:函数的三种调用约定
  • 记一次学习skynet中的C/Lua接口编程解析protobuf过程
  • CMake构建C#工程(protobuf)
  • 小程序租赁系统
  • selenium获取cookie的方法
  • 基于遗传粒子群算法的无人机路径规划【遗传算法|基本粒子群|遗传粒子群三种方法对比】
  • 使用Facebook Messenger数据进行AI模型微调的完整指南
  • 软考系统分析师知识点七:数据库系统下
  • 探索新境界,尽在Codigger新版官网!
  • Llama-3.2-3B-Instruct PyTorch模型微调最佳实践
  • 9个热门.Net开源项目汇总!
  • 初学Qt之环境安装与 hello word
  • 洗衣店管理升级:Spring Boot订单系统
  • LeetCode518:零钱兑换
  • 【华为】默认路由配置
  • React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性
  • ChinaER:重塑跨境互联新体验
  • 【Python脚本】getopt参数解析笔记
  • 【数据结构】顺序表
  • 推理实现new操作符
  • AI绘画Stable Diffusion XL优化终极指南!
  • CSS 命名规范及 BEM 在前端开发中的实践
  • 《网络基础之 HTML 与 CSS 基础 —— 网页的基本结构解析》
  • 力扣1~10题