1

只是想知道当我们在一个项目中创建 wcf 服务并在另一个项目中添加服务引用时看到的背后发生了什么。所以要知道它,我在没有 Visual Studio 的情况下做这一切,即在记事本文件中编写服务代码并使用命令行运行 svcutil.exe。我的问题是我需要在双方(服务端和客户端)运行 svcutil 来导出和导入元数据吗?svcutil.exe 至少会生成哪些文件。

谢谢朋友。

4

1 回答 1

3

SvcUtil将生成一个代理类和一个配置文件,该文件将指定诸如服务使用的绑定、安全凭证、读取配额、服务地址、合同等内容。SvcUtil将生成元数据、序列化代码等。您SvcUtil在服务机器上运行,它提供给您的两个文件(代理类和配置文件)可用于在不同机器上创建客户端。

通常这些也是由 Visual Studio 的“添加服务引用”功能生成的,因此您实际上不必使用 SvcUtil。Visual Studio 实际上SvcUtil在幕后使用来生成客户端代理,因此使用 Visual Studio 生成客户端代理似乎不那么“混乱”。

在 SOA 术语中,一些人认为使用 SvcUtil 或 Visual Studio 手动生成客户端并不是一个好的做法,因为这些 etools 会生成不必要的代码,并且耦合过多,并且不会给您很大的灵活性。您可以分离您的程序集,例如您的服务、合同、代理等,并使用ChannelFactory该类创建服务通道。这篇不错的文章支持后一种生成客户端代理的做法。

于 2012-05-18T08:48:54.257 回答