繁体   English   中英

Asmx Webservice方法接收一个soap xml输入字符串

[英]Asmx Webservice Method to receive an soap xml input string

再会。

我希望有人可以帮助我。 我正在创建 web 服务(这是我第一次创建 web 服务)。 我过去曾从客户端通过创建 soap xml 消息并来回发送和接收消息来使用 web 服务/API。 现在我需要创建自己的 web 服务,并且需要一些帮助来正确创建它。

我最初创建了一个简单的 web 方法,如下所示。

[WebMethod(Description = "Soap Request")]
public string Request(string xmlDocument)
{
   //do work
}

但是当我尝试使用此方法时,我收到以下错误:

System.Web.HttpRequestValidationException:从客户端检测到潜在危险的 Request.Form 值

然后我尝试(在谷歌搜索后)将方法更改如下:

[WebMethod(Description = "Soap Request")]
public string Request(XmlDocument xmlDocument)
{
  //do work
}

但这似乎也不起作用,当我尝试向此方法发送 xml soap 消息时,它是空的。 然后我所做的是使用与我的 xml Soap 消息中的元素匹配的参数创建方法。 然后该方法拾取每个元素并正确填充参数,如下所示。

public void Request(string parm1, string parm2)
{
  //do work
}

与以下 xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:Request>
         <tem:Parm1>111</tem:Parm1>
         <tem:Parm2>222</tem:Parm2>
      </tem:Request>
   </soapenv:Body>
</soapenv:Envelope>

我想知道,这是处理传入消息的正确方法还是我应该做些什么来接受传入的 xml 消息? 我认为我可以像我最初所做的那样创建该方法,它将接受传递给它的 xml 字符串,并且我可以像从 Z2567A5EC9705EB7AC2C984033E 接收到 xml 消息时所做的那样处理该消息。

如果我重复了一个问题,请原谅我,我找不到任何可以给我明确答案的东西。

我已经开始在 Visual Studio 2019 中创建 web 服务。

任何帮助或建议将不胜感激。

我遇到了完全相同的问题。 所以在我的项目中,我只是将它添加到我的web.config/system.web/httpRuntime

requestValidationMode="2.0"

它刚刚奏效!

将此添加到网络

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM