我正在将C#.NET SOAP应用程序从一台服务器移植到一台新服务器。在原始服务器上,我可以传递URL http://oldserver.com/myapp.asmx/method1
,它会返回一个带有结果的XML文件。
在新服务器上,这不起作用。它以500 Internal Server Error
进行回复。SOAP接口正在工作,因为我可以使用urllib2和suds在新服务器上使用Python应用程序调用相同的方法。
如何在新服务器上实现相同的行为?我们有一个使用基于URL的SOAP请求检查更新的产品,因此新服务器必须能够做到这一点,才能与该领域的产品向后兼容。
在将URL传递给应用程序之前,旧服务器是否可能在内部将其转换为SOAP请求?不幸的是,我只能通过ftp访问旧服务器。HTTP标头告诉我,我正在与Microsoft-IIS/6.0
通话。
我发现了问题。它在web.config文件中。旧服务器包含:
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
这似乎可以调用基于URL的方法。