服务器未能识别 HTTP 标头 SOAPAction 的值

SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址。SOAP发送并不限制格式、URI特征或其必须可解析,那么在这种情况下,发送一个HTTP SOAP请求时,其HTTP客户端必须使用/指明SOAPAction HTTP request header。

SOAPAction header的内容可以被用在服务端,诸如:防火墙适当的过滤基于HTTP的SOAP请求消息等场景。SOAPAction header的值为空串("")表示SOAP消息的目的地由HTTP请求的URI标识;无值则表示没有指定这条消息的目的地。

跨平台调用Web Service出现:"服务器未能识别 HTTP 标头 SOAPAction 的值"的解决办法:

症状一:

Web Service + ASP.NET 应用程序部署到服务器默认目录中,在IE中用http://<服务器地址>/<程序目录名>/<默认启动页面名>发生“服务器未能识别 HTTP 标头 SOAPAction 的值”错误。

症状二:

在通过WCF 客户端ChannelFactory<> 上调用.NET Web Service的服务时,出现"服务器未能识别 HTTP 标头 SOAPAction 的值"。

解决对策:

给.NET的WebService类(即.asmx文件下的类)添加属性[SoapDocumentService(RoutingStyle=SoapServiceRoutingStyle.RequestElement)]

/// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [SoapDocumentService(RoutingStyle= SoapServiceRoutingStyle.RequestElement)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    // [System.Web.Script.Services.ScriptService]
    public class SubmitFormTestService : System.Web.Services.WebService

本文来自合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

时间: 2024-12-21 07:54:38

服务器未能识别 HTTP 标头 SOAPAction 的值的相关文章

java-webservice“服务器未能识别 HTTP 头 SOAPAction 的值: 。”

问题描述 webservice"服务器未能识别 HTTP 头 SOAPAction 的值: ." Service service = new Service(); Call call = (Call) service.createCall(); String szUrl = "http://XXX/sendsms.asmx"; call.setTargetEndpointAddress(new java.net.URL(szUrl)); call.setOperat

在iis上部署了一个webservice,在iis中能正常运行,但是在一个项目中引用,编译通过,但是运行提示以下错误System.Web.Services.Protocols.SoapException: 服务器未能识别 HTTP 头 SOAPAction

问题描述 System.Web.Services.Protocols.SoapException:服务器未能识别HTTP头SOAPAction的值:http://www.g-esoft.com/OneAccount/WebService/GetEmployeeByKeyid.在System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()在System.Web.Services.Protocols.SoapServe

解决dell服务器无法识别4G内存办法

服务器:Dell PowerEdge 860 系统:windows 2003 R2 问题:安装了2003r2版,bios里能识别4G内存,安装完系统后,只能识别256MB内存. [问题的解决方法] 进入BIOS如图: 将原先"OS Install Mode"="ON" 设置为"OFF" ,即可解决 DELL服务器不识别4G内存的问题. [分析] 确定操作系统可用的最大内存容量."On"(开)将最大内存设置为 256 MB.&q

ADO向服务器发送请求返回DataSet为什么没有值,求大神解答。

问题描述 我自己向服务器更数据可以,但是要返回个DataSet需要显示到dataGridView...也不报错只是没有数据.在服务器的数据库里有数据是需要序列化吗??? 解决方案 解决方案二:datagridview.databind()这句也要执行.不然就是绑定了数据也不会显示解决方案三:你好为什么datagridview.databind()找不到这句呢解决方案四:你的dta.Table[0]有数据吗?解决方案五:有数据的解决方案六:引用4楼qq_31924339的回复: 有数据的 强制刷新

Java调用.Net的web service的几种方式

最近做项目,涉及到web-service调用,现学了一个星期,现简单的做一个小结.下面实现的是对传喜物流系统(http://vip.cxcod.com/PodApi/GetPodStr.asmx?wsdl)的订单跟踪(web-service调用)功能. 一. 使用axis1.x调用webservice方法 Axis的最常用版本:1.4和2.0版本.以下为1.4版本 核心代码:   // webserviceURL       service_url = "http://vip.cxcod.com

Java与C#平台通信 WCF CXF SOAP

问题提出 : 采用的方案 : 基于 C#平台的 SOA框架 ---WCF简介 WCF 平台搭建 JAVA 调用 WCF 基于 Java平台的 SOA框架 ---CXF简介 CXF平台搭建 CXF 框架支撑环境 开发环境准备 接口类创建 消费服务 使用会话的调用方式 : C# 调用 CXF Service 使用会话的调用方式 WCF与 CXF调用的异常 Java 层抛出 : 服务器未能识别 HTTP 头 SOAPAction 的值异常   <!-- /* Font Definitions */ @

Java与.NET的WebServices相互调用

  一:简介 本文介绍了Java与.NET开发的Web Services相互调用的技术.本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用Java做客户端调用.NET开发的Web Services. 二:项目需要的工具 WindowsXP Professial(IIS) Eclipse3.1(已装好Tomcat axis) VS.Net 2003 备注:下载安装Tomcat5.5.16 以及 Axis的开发包,并做相应配置.看我前

一起谈.NET技术,Java与.NET的WebServices相互调用

本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用Java做客户端调用.NET开发的Web Services. 项目需要的工具 ◆WindowsXP Professial(IIS) ◆Eclipse3.1(已装好Tomcat axis) ◆VS.Net 2003 备注:下载安装Tomcat5.5.16 以及 Axis的开发包,并做相应配置.看我前一片文档. 用.NET做客户端调用Java写的Web Services 1.生成一个J

选型时,如何识别真假云服务器?

作为IT基础设施资源的新一代交付和使用模式,云服务器最近几年在国内风生水起,迅速赢得市场认可,越来越多的企业开始将关键业务迁移上云.受到市场刺激,国内早期成立的大大小小的IDC服务商也纷纷推出云服务器产品,但其中不乏以VPS滥竽充数的冒牌云服务器,混淆视听.企业在对云计算厂商做选型评估时,运维一定是会参与其中给出决策建议的,那么,云服务器如何识别真假,避免上当受骗呢?下面整理了几个方法: 一.从数据存储方式识别真假 真的云服务器,是部署在大量服务器集群构建的云端资源池中,是基于网络的分布式数据存