有没有办法以编程方式从正在运行的服务中获得合同?我想比较客户端引用的合同中正在运行的服务的合同。
例如,我有两个Service1实例在不同的机器上运行,这些机器具有不同的实现。 它们都有一个名为IService1的合同,但实现方式不同。 我有一个Console1,它引用了IService1(第一个实例)。 Console1具有2个端点地址的集合。 Console1想要检查哪个正在运行的服务是他正在使用的合同(第一个实例)的正确服务。
我想在这里做的是使用地址以编程方式从服务中获取合同,并将其与我所引用的合同进行比较。
答案 0 :(得分:1)
如果服务公开元数据,则可能是。究竟如何取决于使用的绑定,如果它是普通的http绑定,您可以使用http://myserver/myservice.svc?WSDL。要比较合同,您必须使用普通的http API下载WSDL,然后将其与存储的引用WSDL进行比较。
在实施比较之前,我认为还应该考虑一些事项: