Asmx Webservice Метод для получения входной строки soap xml - PullRequest
0 голосов
/ 03 апреля 2020

Добрый день.

Я надеюсь, что кто-то может мне помочь. Я создаю веб-сервис (это первый раз, когда я создал веб-сервис). В прошлом я работал с веб-сервисами / API со стороны клиента, создавая soap xml сообщений и отправлял и получал сообщения туда и обратно. Теперь мне нужно создать свой собственный веб-сервис, и мне нужна небольшая помощь в его правильном создании.

Сначала я создал простой веб-метод следующим образом.

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

, но когда я попытался потреблять Этот метод я получил следующую ошибку:

System.Web.HttpRequestValidationException: потенциально опасное значение Request.Form было обнаружено от клиента

я затем попытался (после поиска в Google ), чтобы изменить метод следующим образом:

[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, переданную ему, и я мог работать с сообщением, как я делал это при получении сообщения xml от веб-сервисов, которые я использовал в прошлом .

пожалуйста, прости меня, если я продублировал вопрос, я не смог найти ничего, что дало бы мне определенный ответ.

Я начал создавать веб-сервис в Visual Studio 2019.

любая помощь или совет будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...