只是想知道当我们在项目中创建wcf服务并在另一个项目中添加服务引用时所看到的情况。 所以要知道它我没有使用Visual Studio,即在记事本文件中编写服务代码并使用命令行运行svcutil.exe。 我的问题是我需要在两侧(服务端和客户端)运行svcutil来导出和导入元数据吗? 什么文件至少是由svcutil.exe生成的。
谢谢朋友们。
答案 0 :(得分:2)
SvcUtil
将生成一个代理类和一个配置文件,用于指定服务使用的绑定,安全凭证,读取配额,服务地址,合同等内容。SvcUtil
将生成元数据,序列化代码等。您在服务计算机上运行SvcUtil
,它为您提供的两个文件(代理类和配置文件)可用于在不同的计算机上创建客户端。
通常,这些也是由visual studio的“添加服务引用”功能生成的,因此您不必使用SvcUtil。 Visual Studio实际上使用了SvcUtil
生成客户端代理的场景,因此使用Visual Studio生成客户端代理似乎不那么“混乱”。
在SOA术语中,有些人认为使用SvcUtil或Visual Studio手动生成客户端并不是一种好的做法,因为etools会产生过多耦合的不必要代码,并且不会给你太多灵活性。您可以分离程序集,例如服务,对象,代理等,并使用ChannelFactory
类创建服务通道。 This nice article是后一种生成客户端代理的做法的支持者。