WCF自定义元数据发布

时间:2011-03-01 21:56:42

标签: wcf

我在IIS7上托管了一个通用服务,它接受一个Message并返回Message(带有Action =“*”)。该服务仍然为客户发布元。

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

我们要求元数据可以在服务的生命周期内发生变化,因此本质上元数据具有生命周期。

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

2 个答案:

答案 0 :(得分:0)

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

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

您应该仔细查看需要此技术要求的业务需求,并尝试找到另一种方法来满足它(可能在programmers.stackexchange中发布)。也许你可以提供多种服务,并随着时间的推移在服务之间切换 - 但是如果不知道业务需求,这在黑暗中就是一种刺激。

答案 1 :(得分:0)

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