我正在使用来自https://wwwcie.ups.com/ups.app/xml/Rate的网络服务,在我的asp.net项目中整合UPS送货计算。在运行项目时,我得到了一个例外,如下所示:
描述:System.Web.Services.Protocols.SoapException:服务器无法识别HTTP的值 标头SOAPAction:http://localhost:4594/ShippingModule.asmx/GetUPSShippingCost。在System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()在System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage消息)在System.Web.Services.Protocols.SoapServerProtocol.Initialize()在System.Web.Services .Protocols.ServerProtocol.SetContext(类型类型,HttpContext的上下文中,请求的HttpRequest,HttpResponse对象响应)在System.Web.Services.Protocols.ServerProtocolFactory.Create(类型类型,HttpContext的上下文中,请求的HttpRequest,HttpResponse对象响应,布尔&安培; abortProcessing) 来源:System.Web.Services
我现在在localhost中运行它。这是这个例外的来源吗?或者Web服务中使用的自定义命名空间是主要问题? 我在网上搜索了很多这个问题。但是没有任何解决方法。
答案 0 :(得分:2)
@ user286035,
异常本身很清楚,服务器无法识别HTTP标头SOAPAction的值
这意味着您发送的soap信封有一个标头,其中包含SOAPAction元素,其值无法被服务器识别。如果需要SOAPAction元素,那么尝试在其中加入适当的值&然后将其发布到SOAP服务。
使用TCPMonitor监控发送给服务器的请求,它会为您提供清晰的想法。