我使用.NET 4.0,WCF和wshttp binding来创建一些ws方法。使用wsHttp绑定的原因是我需要支持身份验证、加密和签名。
当我创建这样的服务并查看wsdl时,我看到那里有wsp:policy标记。有没有办法以某种方式影响WCF配置并删除这个标签?
据我所知,在没有这个标签的情况下进行加密和签名是可能的。
发布于 2010-11-24 19:13:32
您可以使用自己的WSDL (serviceMetadata - externalMetadataLocation)替换生成的WSDL。这是我确信您可以实现所需内容的唯一方法,因为您将从头开始编写WSDL。可以修改生成的WSDL和策略- IWsdlExportExtension和IPolicyExportExtension,但我认为您只能向WSDL添加新项,而不能删除由API特性(内置安全性等)添加的项。
顺便说一句。IMHO删除策略是非常糟糕的主意,因为WSDL应该描述服务,并且它应该是开发人员创建客户端应用程序所需要的唯一描述。如果您删除了策略,那么您的WSDL将只包含有关您的服务的部分信息,并且它将变得无用。当然,你会阻碍与代理生成工具的兼容性。关于这个话题,我有过相关的question。
https://stackoverflow.com/questions/4265774
复制相似问题