免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

wcf生成exe

Windows Communication Foundation (WCF) 是一个用于构建服务式应用程序的框架。使用 WCF,您可以创建用于异步数据交换的服务与客户端,这些服务与客户端可以跨不同的传输协议(如 HTTP, TCP, etc.)和消息格式(如 XML 或 JSON 等)进行通信。

我们来探讨如何使用 WCF 生成一个具有自托管服务的 EXE 应用程序。在本示例中,我们将创建一个简单的服务和客户端,服务和客户端分别用于计算两个整数的和。

**定义 WCF 服务**

1. 打开 Visual Studio,创建一个新的 WCF 项目(基于 .NET Framework)。

2. 在项目中,找到 IService1.cs 文件,重命名为 ICalculatorService.cs。

3. 修改 ICalculatorService.cs,定义您的服务接口,如下所示:

```csharp

using System.ServiceModel;

namespace WcfServiceApplication

{

[ServiceContract]

public interface ICalculatorService

{

[OperationContract]

int Sum(int num1, int num2);

}

}

```

**实现服务**

1. 在项目中,找到 Service1.cs 文件,重命名为 CalculatorService.cs。

2. 修改 CalculatorService.cs,实现 ICalculatorService 接口,如下所示:

```csharp

namespace WcfServiceApplication

{

public class CalculatorService : ICalculatorService

{

public int Sum(int num1, int num2) => num1 + num2;

}

}

```

**创建自托管服务**

1. 在项目中,找到 Program.cs 文件。

2. 修改 Program.cs,通过命名空间 System.ServiceModel 和 System.ServiceModel.Description 引用生成 WCF 服务,并添加以下代码:

```csharp

using System;

using System.ServiceModel;

using System.ServiceModel.Description;

using WcfServiceApplication;

namespace WcfServiceApplication

{

class Program

{

static void Main(string[] args)

{

// 创建一个基于 TCP 绑定的地址

Uri uri = new Uri("net.tcp://localhost:8000/CalculatorService");

ServiceHost host = new ServiceHost(typeof(CalculatorService), uri);

try

{

// 创建终结点

host.AddServiceEndpoint(typeof(ICalculatorService), new NetTcpBinding(), uri);

// 启用元数据交换

ServiceMetadataBehavior metadataBehavior = new ServiceMetadataBehavior();

host.Description.Behaviors.Add(metadataBehavior);

host.AddServiceEndpoint(

typeof(IMetadataExchange),

MetadataExchangeBindings.CreateMexTcpBinding(),

"mex"

);

// 开始托管服务

host.Open();

Console.WriteLine("Service is running.");

// 延迟关闭服务

Console.ReadLine();

host.Close();

}

catch (CommunicationException ex)

{

Console.WriteLine("There was an exception: {0}", ex.Message);

host.Abort();

}

}

}

}

```

3. 改变项目类型为 Console Application。在项目属性(Project > Properties)中选择 "Output Type" 为 "Console Application"。

现在,如果您运行此项目,它将创建并托管一个WCF服务并开始监听在本地 TCP 端口 8000。

为了创建一个客户端来与上述服务进行通信,您将需要生成一个代理类。这可以通过在项目中添加服务引用或使用 SvcUtil.exe 工具来完成,然后在客户端应用程序中使用代理类调用服务端的方法。


相关知识:
源码怎么做成exe软件
源码是一种计算机程序语言的文本形式,它包含了程序的指令和逻辑。将源代码转换为可执行文件(EXE文件)的过程通常包括编译和链接两个阶段。下面的详细介绍将帮助您了解源代码是如何转成EXE软件的。编译原理:编译是将源代码翻译成计算机可以识别的机器语言的过程。编译
2023-06-14
怎么制作exe
制作exe文件主要是将一种或多种编程语言编写的源代码编译成可执行的二进制文件。这个过程包括编译、链接等步骤,下面详细介绍制作exe文件的原理和过程。1. 选择编程语言首先要确定用哪种编程语言编写源代码。目前主流的编程语言有很多,比如C、C++、C#、Pyt
2023-06-14
vlx打包exe
标题:VLX打包EXE:原理与详细介绍摘要:VLX文件是一种可加载的AutoLISP文件,用于将多个LISP文件组合到一起,并可与其他应用程序一同分发。本教程详细介绍如何使用VLX打包EXE,并探讨其工作原理。内容:一、VLX文件概述1.1 VLX是为Vi
2023-06-14
swt文件打包exe文件
标题:将SWT文件打包成EXE文件: 原理和详细介绍摘要:本教程将讨论如何将SWT文件打包成EXE文件,以便更方便地分发和执行Java程序。我们将概述SWT应用程序的结构,详细讨论打包过程,并提供一个例子来帮助您快速开始。一、SWT应用程序的结构SWT(S
2023-06-14
php怎样打包exe
PHP打包成EXE是把PHP脚本以及运行环境打包成一个可执行的Windows应用程序。这在许多情况下是有用的,尤其是当你想发布一个PHP应用程序,但不希望用户安装并配置PHP环境。使用PHP打包EXE的原理是嵌入一个独立的PHP解释器(例如php-embe
2023-06-14
go如何生成exe
在本教程中,我们将详细讲解如何使用Go(Golang)生成可执行文件(.exe)。Go语言是谷歌开发的一种静态类型、编译型的程序设计语言,旨在提供简单、高效的软件开发方式。对于想要在Windows平台上运行Go程序的开发者,生成.exe可执行文件是非常实用
2023-06-14