如何在WCF服务中公开我自己的元数据?

问题描述:

而不是暴露系统生成的元数据,我想提供我的元数据,它保存在服务器上的文本文件(比方说)。我想这意味着响应HTTP GET请求http:// [service address]?wdsl。如何在WCF服务中公开我自己的元数据?

您可以简单地关闭元数据导出(删除serviceMetadataBehavior或将其httpGetEnabled标志设置为false),然后将您的WSDL文档放在适合您的应用程序的URL中(?wsdl是WCF/ASMX约定,但不是标准)

这是很容易,如果你使用的是托管IIS,但将需要为自托管

+0

我想用自己的托管一个REST端点 - 你可以请点我在正确的方向,了解加入REST端点? – Shane

+0

这是一个合理的指导http://msdn.microsoft.com/en-us/library/dd203052.aspx。您将需要一个返回流并返回在WSDL文件上打开的FileStream的操作 –

您可以开发自定义的MetaExporter,然后找到ServiceMetadataBehavior,在该行为中,您可以覆盖默认的MetadataExporter。 因此,在你的MetaExporter中,你可以做任何你想要的。