我只想知道当我们在一个项目中创建wcf服务并在另一个项目中添加服务引用时,在seen后面发生了什么。因此,为了了解它,我在没有Visual Studio的情况下完成了这一切,即在记事本文件中编写服务代码,并使用命令行运行svcutil.exe。我的问题是,我是否需要在两端(服务端和客户端)运行svcutil来导出和导入元数据?以及最低限度由svcutil.exe生成的文件。
谢谢,朋友们。
发布于 2012-05-18 16:48:54
SvcUtil将生成一个代理类和一个配置文件,这些文件将指定服务使用的绑定、安全凭证、读取配额、服务地址、契约等。SvcUtil将生成元数据、序列化代码等。在服务机器上运行SvcUtil,它提供的两个文件(代理类和配置文件)可用于在不同的机器上创建客户端。
通常,它们也是由visual studio的“添加服务引用”功能生成的,因此您实际上不必使用SvcUtil。Visual studio实际上在幕后使用SvcUtil来生成客户端代理,所以使用Visual Studio来生成客户端代理似乎没有那么“混乱”。
在面向服务的架构术语中,一些人认为使用SvcUtil或Visual Studio手动生成客户端并不是一种好的做法,因为这些etools会生成不必要的代码,并且耦合太多,并且不会给你带来太多的灵活性。您可以分隔程序集,如服务、上下文、代理等,并使用ChannelFactory类创建服务通道。This nice article是生成客户端代理的后一种实践的支持者。
https://stackoverflow.com/questions/10647911
复制相似问题