我正在与第三方集成,我必须根据他们的标准创建ASMX Web服务,以便他们调用,他们强制我使用他们的硬编码SOAP Action,比如说“http://tempuri.org/SomeWebService/“,现在的问题是,一旦他们调用我的Web服务,我收到的参数为空字符串,在我检查日志后,我发现他们在WebMethod标记中设置了一个不同的命名空间“http://tempuri.org/”,这似乎避免了.NET正确解析参数,下面是我收到的一个示例Envelope:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SomeWebMethod xmlns="http://tempuri.org/">
<SomeField>abc123</SomeField>
</s:Body>
</s:Envelope>
现在,由于我不能请求第三方开发人员更新他们的代码库,所以我需要找到一个变通办法,让.NET不验证WebMethod的命名空间标记,那么有没有机会完成这个任务?
请注意,我检查了POST请求,所有参数都在XML正文中沿着并带有赋值,但.NET同样无法将它们解析为方法参数。
1条答案
按热度按时间iyr7buue1#
已使用SoapDocumentMethod解决: