WCF自定义元数据发布

WCF自定义元数据发布,wcf,Wcf,我有一个托管在IIS7上的通用服务,它接受消息并返回消息(使用Action=“*”)。此服务仍然为客户端发布元数据 此元数据是使用ServiceMetadataBehavior中的LocationUrl属性显式指定的 我们有一个要求,即元数据可以在服务的生命周期内更改,因此本质上元数据有一个生命周期 我尝试将IWsdlExportExtension添加到服务端点行为中,但ExportEndpoint方法只会被调用一次(当第一次加载服务时)。我是否有办法使加载的元数据无效,以便在任何时候使用Htt

我有一个托管在IIS7上的通用服务,它接受消息并返回消息(使用Action=“*”)。此服务仍然为客户端发布元数据

此元数据是使用ServiceMetadataBehavior中的LocationUrl属性显式指定的

我们有一个要求,即元数据可以在服务的生命周期内更改,因此本质上元数据有一个生命周期

我尝试将IWsdlExportExtension添加到服务端点行为中,但ExportEndpoint方法只会被调用一次(当第一次加载服务时)。我是否有办法使加载的元数据无效,以便在任何时候使用HttpGet调用wsdl时,行为都会被调用?

您所要求的(在运行时更改发布的服务定义)是不可能的-您需要删除指定元数据可以随时间更改的要求

发布服务后,服务规范应该更改的唯一原因是服务已升级


您应该更仔细地研究使此技术需求成为必要的业务需求,并尝试找到另一种方式来满足它(可能是发布)。也许您可以拥有多个可用的服务,并随着时间的推移在服务之间切换,但这有点像是在不知道业务需求的情况下进行的暗中操作。

不,没有办法。此外,如果需要,您可以使用完全定制的解决方案,因为这超出了web服务的范围。更改元数据意味着更改服务本身=其内部逻辑,这通常会导致重新启动托管进程并发布新的元数据。

好的,服务本身只是许多其他服务(wcf和非wcf)的门面,它们动态地来来去去。好的,它是路由器吗?在这种情况下,您应该路由原始wsdl。它更像一个服务总线