基于 C# .NET Framework 4.0 开发实现 WCF 服务实例详解(一)
目录
引言
我们利用C#可以快速开发各种后端服务,如常见的windows服务、WCF 服务、WebService服务、WebApi等,本文将详细讲解如何基于 C# 和 .NET Framework 4.0 开发一个 WCF 服务,确保每个步骤都清晰且易于理解和掌握。
1. 创建 WCF 服务库
1.1 创建项目
- 打开 Visual Studio。
- 选择
File
->New
->Project
。 - 选择
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 创建控制台应用程序
- 添加一个新的 "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 添加客户端应用程序
- 创建一个新的 "Console Application" 来测试服务,命名为
WcfClient
。
4.3 添加服务引用
在客户端项目中,右键点击项目,选择 Add Service Reference
,输入服务地址(如 http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/
),然后点击 Go
和 OK
。
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. 运行和测试
- 启动
ConsoleHost
项目以宿主 WCF 服务。 - 运行
WcfClient
项目,您应该会看到输出You entered: 42
。
概念解释
- ServiceContract: 用于定义服务接口。
- OperationContract: 用于标记服务方法。
- ServiceHost: 用于宿主服务,提供服务管理和生命周期管理。
- Endpoint: 定义服务的地址、绑定和契约。
- Binding: 定义如何传输消息(比如
basicHttpBinding
)。 - Contract: 定义服务接口(比如
IService1
)。
故障排除
- 如果服务无法启动,请检查
App.config
中的配置是否正确。 - 如果客户端无法调用服务,请确保服务地址正确且服务已经启动。
- 使用
ServiceTraceViewer
查看更详细的WCF跟踪和日志,以帮助诊断问题。
通过这些步骤和解释,您应该能够深入了解并掌握基于 C# 和 .NET Framework 4.0 的 WCF 服务开发技术。如果遇到任何问题,请提供具体的错误信息以便进一步诊断和解决问题。
原文地址:https://blog.csdn.net/martian665/article/details/142815746
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!