接受ASP.NET Web服务中的SOAP请求

本文关键字:SOAP 请求 服务 ASP NET Web 接受 | 更新日期: 2023-09-27 17:58:33

我正试图在ASP.NET Web服务上接收SOAP请求,但我现在正停留在这里。

我尝试的第一件事是在我的Web服务中接收一个简单的字符串,但我的Web Service拒绝了这个请求,因为这是一个"危险的请求"。我尝试的第二件事是使用XmlDocument和XElement作为输入日期类型,但当我尝试时,我在SoapUI中得到了IndexOutOfRangeException,并且不能简单地在浏览器中调用该方法。

在WebMethod中有接受SOAP请求的技巧吗?

为了更容易理解,我正在寻找这样的解决方案:

[WebMethod]
public XmlDocument Method(string soapRequest)
{
    XmlDocument xmlAnswer = doSomethingWithRequest(soapRequest);
    return xmlAnswer;
}

接受ASP.NET Web服务中的SOAP请求

不幸的是,我找不到任何方法来使用我所要求的这样一个简单的解决方案。我试过XmlElement在这篇(非常古老的)文章中是如何提到它的。

我现在就是这样做的:

// Create array for holding request in bytes
byte[] inputStream = new byte[HttpContext.Current.Request.ContentLength];
// Read the entire request input stream
HttpContext.Current.Request.InputStream.Read(inputStream, 0, inputStream.Length);
// Set stream position back to beginning
HttpContext.Current.Request.InputStream.Position = 0;
// Get the XML request
string xmlRequestString = Encoding.UTF8.GetString(inputStream);

这对我来说很好。