我正在为SOAP服务实现一个客户端,我无法访问它。由于我是一个新手,我真的没有太多的SOAP经验,所以我采用默认方法通过Visual Studio 2017添加服务参考,通过配置文件配置服务,然后希望它工作。 不幸的是,每当我调用该服务时,我都会得到一个NULL响应。搜索一下,似乎有些名称空间问题。实际上,WSDL有许多已定义的外部名称空间,例如:
xmlns:eCH-0011="http://www.ech.ch/xmlns/eCH-0011-f/8"
我想,代理生成器会采用这个,但是例如当我使用http://webservicestudio.codeplex.com/时,我得到一个名称空间异常,如:
架构解析错误在diesem Schema ist命名空间中 'http://www.ech.ch/xmlns/eCH-0044-f/4'nichtfürdenVerweis verfügbar。
哪个是德语,意味着namespce不可用于参考。
我尝试通过使用“svc?wsdl”前缀调用服务来动态创建WSDL,并从开发人员那里收到WSDL,但两者都无法正常工作。 我还使用Fiddler作为代理,我在响应中看到我会得到正确的XML,但是,在代码中我没有得到任何错误或其他反馈问题是什么。
通常不可能有外部名称空间,或者我在这里配置错误了吗?我目前正试图在插入数据和反序列化之间偷偷摸摸,但到目前为止没有任何运气。可悲的是,据我所知,没有太多的信息。
玩转:我进一步玩了,实现了一个IClientMessageInspector和一个IEndpointBehavior,我可以调试传入的消息。这似乎很好,所以它必须是SOAP格式化程序,这会导致问题。不幸的是,我仍然无法获得异常,但它始终为空。