C# 传入SOAP消息的XSD验证

C# 传入SOAP消息的XSD验证,c#,.net,web-services,xsd,asmx,C#,.net,Web Services,Xsd,Asmx,我希望这会很简单,但很明显,网络上的每一个解决方案都不是我想要的。我的意思是拥有一个web服务调用的验证方法,或者拥有一个验证传入SOAP消息的函数属性(并通过该模式进行验证…,但我可能不得不这样做) 我们有一系列面向公众的web服务。每个服务都接受一个XML元素 我们还有大量的XSD模式,我们想用它们来验证传入的XML消息,这些XML消息也是供应商用来构建系统的已发布WSDL文件的一部分 我希望将XSD验证包含到实际的web服务方法中,而不是发布的WSDL文件中 是否有任何web方法属性,或者

我希望这会很简单,但很明显,网络上的每一个解决方案都不是我想要的。我的意思是拥有一个web服务调用的验证方法,或者拥有一个验证传入SOAP消息的函数属性(并通过该模式进行验证…,但我可能不得不这样做)

我们有一系列面向公众的web服务。每个服务都接受一个XML元素

我们还有大量的XSD模式,我们想用它们来验证传入的XML消息,这些XML消息也是供应商用来构建系统的已发布WSDL文件的一部分

我希望将XSD验证包含到实际的web服务方法中,而不是发布的WSDL文件中

是否有任何web方法属性,或者我可以做些什么来告诉web服务在执行任何代码之前使用特定的XSD(或10+XSD)进行验证

如果有更好的办法,我会听的


谢谢。

我认为没有什么比属性更简单的了。首先,这说明了如何在WCF世界中做到这一点;从你的问题很难说这个解决方案是否会落在你的“不是我想要的”集合中;我想,虽然MSDN上有这样的功能,但它也一定是为什么使用消息检查器的一个很好的例子


至于更好的方法,这取决于您的具体限制。对于中/高容量场景,我建议使用Datapower或Forum Sentry XML网关;从安全角度来看,这些设备也非常适合您面向公众的场景;SSL终止和验证是在“硬件”中完成的,成本仅为传统软件方法的一小部分。

我使用ASMX web服务完成了这项工作,使用的是


我建议您从示例开始,让它工作,然后慢慢地更改它,直到它执行验证。在每一步中,确保它仍然有效。我发现这是一个非常挑剔的类。

这是一个ASMX web服务还是WCF?这是一个ASMX服务。