我正在开发一个最近从Visual Studio 2003转换为Visual Studio 2008的Web应用程序。该应用程序包含一些使用.NET 1.1 Framework和Web Service Enhancements 2.0编写的Web服务。它们使用VS 2008转换向导工具转换为.NET 3.5框架。
仍然使用.NET 1.1框架编写的客户端应用程序引用了更新的Web服务并尝试使用Web服务并收到以下错误:
System.Web.Services.Protocols.SoapException:服务器无法识别HTTP标头SOAPAction的值:( Web服务URI)
对于引用,URL行为设置为静态,并且代理类继承已从System.Web.Services.Protocols.SoapHttpClientProtocol命名空间更改为Microsoft.Web.Services2.WebServicesExtension命名空间
如果您需要其他信息或需要查看一些源代码,请告知我们。
答案 0 :(得分:1)
如果您使用网络浏览器直接访问asmx网址,然后点击您要调用的方法,那么他们想要的SOAPAction是什么?
接下来,检查Reference.vb代码并查看SoapDocumentMethodAttribute属性的设置。
他们匹配吗?
答案 1 :(得分:0)
Web服务是否有效?您的新更新的2.0 Web服务是否可能与1.1应用程序存在于同一应用程序域中?在这种情况下,您需要创建自己的应用程序域。
如果不是本地人尝试使用Fiddler来查看所有来回的内容。
答案 2 :(得分:0)
我假设您正在尝试从WSE2(.net 1.1)客户端调用WCF(.net 3.5)服务。
微软称他们并不打算支持WSE版本之间的向后兼容性。每个新版本都被视为技术预览,并且实现了一组新功能,这些功能会破坏兼容性。 不过,据说WCF与WSE3兼容。所以你有两个选择: