使用.net Web服务的客户端从.NET 1.1升级到3.5的问题

时间:2008-10-08 23:59:13

标签: .net web-services

我正在开发一个最近从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命名空间

如果您需要其他信息或需要查看一些源代码,请告知我们。

3 个答案:

答案 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兼容。

所以你有两个选择:

  1. 将客户端应用程序移植到WCF(或至少WSE3)以使其与服务兼容。
  2. 使用基本相同的代码显式地使用WSE2重新实现服务(它甚至可以在.net 3.5下工作)。